我有一个包含外国C ++代码(CoolProp)的C ++项目。我编译的这个外来代码是静态库。编译器是带有-m32选项的TDM-GCC Vers 5.1.0。 我使用带有-m32选项的TDM-GCC Vers 5.1.0再次使用我的C ++代码调用。 我能够编译并运行一个小命令行测试程序。 整个编译序列(Windoes命令行提示符或MSYS 1.0):
g ++ -c -o build / fluidflow.o -LC:/CoolProp/5.1.2/CoolProp/build -I./include -IC:/CoolProp/5.1.2/CoolProp/include src / fluidflow.cpp -lCoolProp -m32&& ar rcs build / libfluidflow.a build / fluidflow.o
g ++ -c -o build / formulae.o -I./include src / formulae.cpp -lm -m32&& AR rcs build / libformulae.a build / formulae.o
g ++ -c -o build / fancoil.o -I./include src / fancoil.cpp -lm -m32&& AR rcs build / libfancoil.a build / fancoil.o
g ++ -c -o build / circuit.o -L./build -LC:/CoolProp/5.1.2/CoolProp/build -I./include src / circuit.cpp -IC:/CoolProp/5.1.2/CoolProp/include -lm -lfancoil -lformulae -lfluidflow -lCoolProp -m32&& ar rcs build / libcircuit.a build / circuit.o
g ++ -c -o build / cell.o -L./build -LC:/CoolProp/5.1.2/CoolProp/build -I./include src / cell.cpp -IC:/CoolProp/5.1.2/CoolProp/include -lm -lcircuit -lfancoil -lformulae -lfluidflow -lCoolProp -m32&& ar rcs build / libcell.a build / cell.o
g ++ -o test / test_simple.exe -L./build -LC:/CoolProp/5.1.2/CoolProp/build -I./include test / test_simple.cpp -IC:/CoolProp/5.1.2/CoolProp/include -lm -lcell -lcircuit -lfancoil -lformulae -lfluidflow -lCoolProp -m32&& cd test&& test_simple.exe
接下来,我尝试使用wxWidgets,Vers 3.0构建一个GUI程序。至于我没有调用我的库,我可以使用msys编译
g ++ fancoil_gui.cpp wx-config --cxxflags --libs
-o fancoil_gui
当我尝试调用我的库时,例如libformulae.a / formulae.h我使用-m32选项并且编译总是以
C:/ TDM-GCC-64 / bin中/../ LIB / GCC / x86_64的-W64-的mingw32 / 5.1.0 /../../../../ x86_64的-W64-的mingw32 / bin中/ld.exe: 跳过不兼容的C:/msys/1.0/local/lib/libwxregexu-3.0.a 搜索-lwxregexu-3.0
操作系统是64位Windows 7
如何在不创建错误的情况下执行此操作?
答案 0 :(得分:2)
看起来不像是错误。 PATH上有一个64位的库,但是你要求链接器找到一个32位的库。它只是告诉你,它忽略了64位的。