commonc++ msys/mingw win32 linker problem



  • Hallo,

    ich bin dabei, ein commonc++ project von linux auf win32 zu portieren. grundsaetzlich geht auch alles, jedoch kommt es beim linken zu problemen.
    ich kann z.b. eine einfache threadapp oder eine tcpthread app compilieren und linken, jedoch bekomme ich bei einer socketserviceapp ein linkerproblem.
    unter linux (selber quellcode) ist das jedoch kein problem.

    im vorfeld habe ich commonc++ vom aktuellen stable src unter win32 msys mit mingw compiliert und auch die dlls erstellt.
    jedoch: es scheint unter win32 keinen unterschied zumachen, ob die libs oder dlls unter mingw eingebunden sind - auch etwas das ich nicht verstehe. lediglich zur laufzeit brauche ich die dlls.

    hier die erstellen libs/dlls wie sie vom commonc++ make install ins mingw dir geschrieben werden:
    mingw/lib:
    13103364 libccext2.a
    569388 libccext2dll.a
    17491450 libccgnu2.a
    632530 libccgnu2dll.a

    mingw/dll:
    390656 ccext2.dll
    368128 ccgnu2.dll
    569388 libccext2.a
    632530 libccgnu2.a

    //FEHLER beim LINKEN
    $ make testsocketservice
    mingw32-c++ -I. -I/mingw/include/cc++2 -D_GNU_SOURCE -O2 -mthreads -L. -L/
    mingw/dll -L/mingw/lib -lccgnu2 -lccext2 -lws2_32 -o ../win32/
    testsocketservice.exe ../test/testsocketservice.cpp
    D:/TEMP/cc0Yaaaa.o(.text$_ZN12MySocketPort7pendingEv
    +0xe1):testsocketservice.cpp: undefined reference to `recv@16'
    make: *** [../win32/testsocketservice.exe] Error 1

    //OK
    $ make testthread
    mingw32-c++ -I. -I/mingw/include/cc++2 -D_GNU_SOURCE -O2 -mthreads -L. -L/
    mingw/dll -L/mingw/lib -lccgnu2 -lccext2 -lws2_32 -o ../win32/
    testthread.exe ../test/testthread.cpp

    //OK
    $ make tcpthread
    mingw32-c++ -I. -I/mingw/include/cc++2 -D_GNU_SOURCE -O2 -mthreads -L. -L/
    mingw/dll -L/mingw/lib -lccgnu2 -lccext2 -lws2_32 -o ../win32/
    tcpthread.exe ../test/tcpthread.cpp


Anmelden zum Antworten