在 mingw64 下使用 g++ 的 Moxa PComm.lib:无法识别文件格式
Moxa PComm.lib with g++ under mingw64: file format not recognized
我正在重构一个旧的 Borland C/C++98 程序。我想在 linux 平台下对其进行编程,但开始时,因为我有几个附加板,我清理程序,删除所有 GUI OWL 并在 win7 和 mingw64 下进行测试以使用现代 gcc/g++.
我实际上尝试 link 使用 C320 turbo Moxa 多串口板的示例代码。
正如在
http://www.mingw.org/wiki/Specify_the_libraries_for_the_linker_to_use
它应该 link .lib 和 .dll。
所以我尝试 link 我的样本与 Moxa PComm.lib 的 sio_open, sio_read, sio_write… 函数
g++ -m32 -Wall -std=c++14 src/main.cpp src/rs232_c320t.cpp … -L./lib -lPComm
它returns
./lib/PComm.lib: file not recognized: File format not recognized
是否有任何选项允许 link windows .lib 和 gcc/g++ 在 mingw64 下?
谢谢
这个相关的“Linking *.lib files with MinGW”问题没有提到 "File format not recognize" 错误。另请参阅下面我的评论。
bcag2
我最后下载了 PCommLite for win7 x64。
将 C:\Program Files\Moxa\PCommLite 1.6\Include\PCOMM.H
复制到我的包含项目文件夹(在我的例子中是 lib),并对 C:\Program Files\Moxa\PCommLite 1.6\Lib\x64
.[=22 中的文件 PCOMM.dll
和 PCOMM.lib
执行相同的操作=]
然后我编译:
g++ -c -std=c++14 -D_hypot=hypot -DWIN32 src/*.cpp -I./lib/
其中 -I./lib
授予对 PCOMM.H
和 link 的访问权限:
g++ -shared *.o lib/PCOMM.LIB /c/Windows/System32/msvcr120.dll /c/ProgramData/Anaconda3/python36.dll -o _project.pyd
当然你可以一次完成所有的工作并创建一个 .exe
:
g++ -o project.exe -Wall -std=c++14 -DWIN32 src/*.cpp -Ilib/ lib/PCOMM.LIB -L./lib/
根据 Moxa 支持人员的建议,不需要 -ansi
!
我正在重构一个旧的 Borland C/C++98 程序。我想在 linux 平台下对其进行编程,但开始时,因为我有几个附加板,我清理程序,删除所有 GUI OWL 并在 win7 和 mingw64 下进行测试以使用现代 gcc/g++.
我实际上尝试 link 使用 C320 turbo Moxa 多串口板的示例代码。 正如在 http://www.mingw.org/wiki/Specify_the_libraries_for_the_linker_to_use 它应该 link .lib 和 .dll。
所以我尝试 link 我的样本与 Moxa PComm.lib 的 sio_open, sio_read, sio_write… 函数
g++ -m32 -Wall -std=c++14 src/main.cpp src/rs232_c320t.cpp … -L./lib -lPComm
它returns
./lib/PComm.lib: file not recognized: File format not recognized
是否有任何选项允许 link windows .lib 和 gcc/g++ 在 mingw64 下?
谢谢
这个相关的“Linking *.lib files with MinGW”问题没有提到 "File format not recognize" 错误。另请参阅下面我的评论。
bcag2
我最后下载了 PCommLite for win7 x64。
将 C:\Program Files\Moxa\PCommLite 1.6\Include\PCOMM.H
复制到我的包含项目文件夹(在我的例子中是 lib),并对 C:\Program Files\Moxa\PCommLite 1.6\Lib\x64
.[=22 中的文件 PCOMM.dll
和 PCOMM.lib
执行相同的操作=]
然后我编译:
g++ -c -std=c++14 -D_hypot=hypot -DWIN32 src/*.cpp -I./lib/
其中 -I./lib
授予对 PCOMM.H
和 link 的访问权限:
g++ -shared *.o lib/PCOMM.LIB /c/Windows/System32/msvcr120.dll /c/ProgramData/Anaconda3/python36.dll -o _project.pyd
当然你可以一次完成所有的工作并创建一个 .exe
:
g++ -o project.exe -Wall -std=c++14 -DWIN32 src/*.cpp -Ilib/ lib/PCOMM.LIB -L./lib/
根据 Moxa 支持人员的建议,不需要 -ansi
!