在mingw64下使用g ++的Moxa PComm.lib:无法识别文件格式

时间:2017-01-03 16:05:23

标签: c++ gcc mingw-w64

我正在重构旧的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

1 个答案:

答案 0 :(得分:0)

我上次下载了PCommLite for win7 x64

在我的include项目文件夹中复制C:\Program Files\Moxa\PCommLite 1.6\Include\PCOMM.H(在我的情况下为lib),并对PCOMM.dll中的文件PCOMM.libC:\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是必需的!