我正在重构旧的Borland C / C ++ 98程序。我想在linux平台下编程,但是为了开始,因为我有几个附加板,我清理程序,删除所有GUI OWL并在win7和mingw64下进行测试以使用现代gcc / g ++。
我实际上尝试链接使用C320 turbo Moxa多端口串行板的示例代码。 如提到的那样 http://www.mingw.org/wiki/Specify_the_libraries_for_the_linker_to_use 它应该链接.lib和.dll。
所以我尝试将我的样本与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
然后返回
./lib/PComm.lib: file not recognized: File format not recognized
是否有任何选项允许在mingw64下使用gcc / g ++链接窗口.lib?
由于
此相关“Linking *.lib files with MinGW”问题未提及“文件格式无法识别”错误。另见我的评论。
bcag2
答案 0 :(得分:0)
我上次下载了PCommLite for win7 x64。
在我的include项目文件夹中复制C:\Program Files\Moxa\PCommLite 1.6\Include\PCOMM.H
(在我的情况下为lib),并对PCOMM.dll
中的文件PCOMM.lib
和C:\Program Files\Moxa\PCommLite 1.6\Lib\x64
执行相同操作。
然后我编译:
g++ -c -std=c++14 -D_hypot=hypot -DWIN32 src/*.cpp -I./lib/
-I./lib
允许访问PCOMM.H
并链接到:
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支持的建议, NO -ansi
是必需的!