2017-01-03 6 views
0

Ich überarbeite ein altes Borland C/C++ 98 Programm. Ich möchte es unter Linux-Plattform, sondern zu Beginn, wie ich mehrere Add-Ons Boards habe, reinigen ich das Programm, entfernen Sie alle GUI-OWL und Tests unter Win7 und Mingw64, um moderne gcc/g ++ zu verwenden.Moxa PComm.lib mit g ++ unter mingw64: Dateiformat nicht erkannt

Ich versuche tatsächlich, einen Beispielcode, der C320 Turbo Moxa Multiport serielle Karte verwenden, zu verknüpfen. Wie in http://www.mingw.org/wiki/Specify_the_libraries_for_the_linker_to_use erwähnt, sollte es .lib und .dll verknüpfen.

Also versuchte ich meine Probe mit Moxa PComm.lib für sio_open, sio_read, sio_write ... Funktionen wie

g++ -m32 -Wall -std=c++14 src/main.cpp src/rs232_c320t.cpp … -L./lib -lPComm 

und es gibt

./lib/PComm.lib: file not recognized: File format not recognized 

dort zu verlinkt sind alle Optionen Link Fenster zu ermöglichen, .lib mit gcc/g ++ unter mingw64?

Dank

Dieser Zusammenhang „Linking *.lib files with MinGW“ Frage Fehler nicht erwähnt „Dateiformat nicht erkennen“. Siehe auch meine Kommentare unten.

bcag2

+0

Mögliche Duplikate von [Linking \ *. Lib Dateien mit MinGW] (http://StackOverflow.com/Questions/7241047/linking-Lib-Files-With-MingW) Oh, und wenn es eine wirklich alte .lib ist von Borland Compiler aus den 90er Jahren gemacht, könnte es mit nichts als ihre Compiler kompatibel – Swift

+0

Ich habe versucht, die lib-Datei ohne Erfolg umbenennen ... in der Tat g ++ lesen Sie die Datei, aber kann nicht mit arbeiten. – bcag2

+0

Ich habe auch versucht Lib2a, die "ungültige oder beschädigte Import-Bibliothek" zurückgeben. Die letzte Version von PComm Lite von Moxa wurde 2012-05 veröffentlicht, also glaube ich nicht, dass es mit Borland war. Es ist mein Programm, das ursprünglich mit Borland geschrieben wurde, aber es ist nicht das Problem! – bcag2

Antwort

0

ich heruntergeladen letzte PCommLite for win7 x64.

Copy C:\Program Files\Moxa\PCommLite 1.6\Include\PCOMM.H in meinem umfassen Projektordner (lib in meinem Fall), und das Gleiche tun für Dateien PCOMM.dll und PCOMM.lib in C:\Program Files\Moxa\PCommLite 1.6\Lib\x64.

Dann kompilieren ich mit:

g++ -c -std=c++14 -D_hypot=hypot -DWIN32 src/*.cpp -I./lib/ 

Wo -I./lib den Zugang zu PCOMM.H und Link mit:

g++ -shared *.o lib/PCOMM.LIB /c/Windows/System32/msvcr120.dll /c/ProgramData/Anaconda3/python36.dll -o _project.pyd 

Natürlich können Sie alle in einer Zeit tun und schaffen eine .exe:

g++ -o project.exe -Wall -std=c++14 -DWIN32 src/*.cpp -Ilib/ lib/PCOMM.LIB -L./lib/ 

NO -ansi erforderlich wie von Moxa Support empfohlen!

Verwandte Themen