我有一个包含外国C ++代码(CoolProp)的C ++项目。我将此外部代码编译为静态库。编译器是带有-m32选项的TDM-GCC Vers 5.1.0。
我使用带有-m32选项的TDM-GCC 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 && arss 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_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。可执行程序:
  在以下情况时跳过不兼容的C:/msys/1.0/local/lib/libwxregexu-3.0.a
  搜索-lwxregexu-3.0


操作系统是64位Windows 7

我该如何做而不产生错误?

最佳答案

看起来不像是一个错误。您在PATH上有一个64位库,但是您要让链接程序找到一个32位库。只是告诉您它忽略了64位。

10-08 19:52