OpenWatcom STLport Problem



  • Hallo!

    Wenn ich versuche ein einfaches Programm mit OpenWatcom und STLport zu compilieren, sagt er:

    D:\watcom>SET PATH=D:\watcom\BINNT;D:\watcom\BINW;C:\WINDOWS\system32;C:\WINDOWS
    ;C:\WINDOWS\System32\Wbem;D:\dm\bin;D:\MinGW\bin;D:\mplayer;D:\WinAVR\bin;D:\ema
    cs\bin;D:\CBuilderX\bin
    
    D:\watcom>SET WATCOM=D:\watcom
    
    D:\watcom>SET EDPATH=D:\watcom\EDDAT
    
    D:\watcom>SET INCLUDE=D:\watcom\H;D:\watcom\H\NT;D:\watcom\h\STLport\stlport;
    
    D:\watcom>wpp386 test.cpp
    Open Watcom C++32 Optimizing Compiler Version 1.3
    Portions Copyright (c) 1989-2002 Sybase, Inc. All Rights Reserved.
    Source code is available under the Sybase Open Watcom Public License.
    See http://www.openwatcom.org/ for details.
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(228): Error! E135: col(17) 'fri
    end', 'virtual' or 'inline' modifiers may only be used on functions
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(228): Note! N393: col(17) inclu
    ded from D:\watcom\h\STLport\stlport\stl\_algobase.h(56)
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(228): Note! N393: col(17) inclu
    ded from D:\watcom\h\STLport\stlport\vector(37)
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(228): Note! N393: col(17) inclu
    ded from test.cpp(1)
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(228): Error! E408: col(17) func
    tion templates can only name functions
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(228): Error! E006: col(17) synt
    ax error; probable cause: missing ';'
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(322): Error! E135: col(11) 'fri
    end', 'virtual' or 'inline' modifiers may only be used on functions
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(322): Error! E408: col(11) func
    tion templates can only name functions
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(322): Error! E042: col(11) symb
    ol 'ptrdiff_t' already defined
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(228): Note! N392: col(8) defini
    tion: 'int ptrdiff_t'
    D:\watcom\h\STLport\stlport\stl\_iterator_base.h(322): Error! E006: col(1) synta
    x error; probable cause: missing ';'
    D:\watcom\h\STLport\stlport\stl\_algobase.h(149): Error! E029: col(13) symbol 'm
    emmove' has not been declared
    D:\watcom\h\STLport\stlport\stl\_algobase.h(183): Error! E178: col(24) const obj
    ect must be initialized
    D:\watcom\h\STLport\stlport\stl\_algobase.h(183): Error! E006: col(19) syntax er
    ror; probable cause: missing ';'
    D:\watcom\h\STLport\stlport\stl\_algobase.h(184): Error! E029: col(11) symbol '_
    Num' has not been declared
    D:\watcom\h\STLport\stlport\stl\_algobase.h(345): Error! E029: col(3) symbol 'me
    mset' has not been declared
    D:\watcom\h\STLport\stlport\stl\_algobase.h(351): Error! E029: col(3) symbol 'me
    mset' has not been declared
    D:\watcom\h\STLport\stlport\stl\_algobase.h(356): Error! E029: col(3) symbol 'me
    mset' has not been declared
    D:\watcom\h\STLport\stlport\stl\_algobase.h(464): Error! E029: col(24) symbol 'm
    emcmp' has not been declared
    D:\watcom\h\STLport\stlport\stl\_algobase.h(493): Error! E178: col(26) const obj
    ect must be initialized
    D:\watcom\h\STLport\stlport\stl\_algobase.h(493): Error! E006: col(19) syntax er
    ror; probable cause: missing ';'
    D:\watcom\h\STLport\stlport\stl\_algobase.h(494): Error! E042: col(26) symbol 'p
    trdiff_t' already defined
    D:\watcom\h\STLport\stlport\stl\_algobase.h(493): Note! N392: col(9) definition:
     'int const ptrdiff_t' in 'int __lexicographical_compare_3way( unsigned char con
    st *, unsigned char const *, unsigned char const *, unsigned char const * )'
    D:\watcom\h\STLport\stlport\stl\_algobase.h(494): Error! E006: col(19) syntax er
    ror; probable cause: missing ';'
    D:\watcom\h\STLport\stlport\stl\_algobase.h(495): Error! E029: col(58) symbol '_
    _len1' has not been declared
    D:\watcom\h\STLport\stlport\stl\_algobase.h(497): Error! E133: col(37) too many
    errors: compilation aborted
    test.cpp: no lines, included 5800, no warnings, 21 errors
    

    Ich benutze STLport-4.6.2.

    test.cpp:

    #include<vector>
    main(){}
    

    Was tun?



  • vielleicht mag watcom kein
    main(){}
    versuche das korrekte
    int main() {}
    K.



  • Warum benutzt du diesen scheiss Compiler? Zwingt dich jemand dazu? Freiwillig würd ich den nicht nehmen.



  • OpenWatcom ist wohl noch nicht ISO C++ kompatibel (nach der aktuellen Norm).

    Ist allerdings auch kein Wunder, da OpenWatcom ja zunaechst das Ziel hat, das Watcom Compiler Projekt fortzufuehren (nachdem Sybase es eingestellt hatte).

    Es gibt moeglicherweise aeltere Versionen der STL, die man mit dem Watcom verwenden kann (die noch keine neueren Konstruktionen verwenden).

    Andernfalls muss man halt entweder seine eigenen Klassen schreiben, oder die benoetigten Teile der STL portieren. (waere auch eine gute Contribution zum OpenWatcom Projekt, bist sicher nicht der Einzige mit dem Problem! 😉 )

    Der OpenWatcom C++ Compiler hat einige Vorteile gegenueber anderen Compilern: Er hat einen guten eingebauten Optimizer, er kann Assembler-Inline-Makros in C/C++, er hat benutzerdefinierbare Calling-Conventions, und das beste ist: Er ist kostenlos! 😉


Anmelden zum Antworten