C++:在 Msys 下使用使用 g++ 和 -m32 选项构建的 c++ 库构建 wxWidgets 项目时出现 ld 不兼容错误

标签 c++ g++ wxwidgets msys tdm-gcc

我有一个包含外国 C++ 代码 (CoolProp) 的 C++ 项目。这个外国代码我已经编译为静态库。编译器是带有 -m32 选项的 TDM-GCC Vers 5.1.0。 我再次使用带有 -m32 选项的 TDM-GCC Vers 5.1.0 在我的 C++ 代码中调用。 我能够编译并运行一个小的命令行测试程序。 整个编译过程(Windoes命令行提示符或MSYS 1.0):

  1. 封装流体

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

  1. 封装公式

g++ -c -o build/formulae.o -I./include src/formulae.cpp -lm -m32 && ar rcs build/libformulae.a build/formulae.o

  1. 封装风机盘管

g++ -c -o build/fancoil.o -I./include src/fancoil.cpp -lm -m32 && ar rcs build/libfancoil.a build/fancoil.o

  1. 封装电路

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

  1. 封装电池

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

  1. 测试程序、流体流和风机盘管包

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: skipping incompatible C:/msys/1.0/local/lib/libwxregexu-3.0.a when searching for -lwxregexu-3.0

操作系统为 64 位 Windows 7

我怎样才能在不产生错误的情况下做到这一点?

最佳答案

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

关于C++:在 Msys 下使用使用 g++ 和 -m32 选项构建的 c++ 库构建 wxWidgets 项目时出现 ld 不兼容错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35997203/

相关文章:

c++ - 将 GNU/Linux C++ 包导入 Windows 上的 Visual Studio

c++ - 为什么我的 C++ 编译器说虚拟成员没有定义?

macos - vListBox 或 HtmlListbox 的不连续多项选择在 OS X 上的 wxWidgets/wxPython 中不起作用

c++ - GNU 使 : How to add an option in front of every entry of a list

c++ - 如何找出哪些方法增加了 'exe' 的大小

gcc - static_cast/float/bitset/const 怪异

linux - 制作-j 8 g++ : internal compiler error: Killed (program cc1plus)

c++ - 我可以以编程方式重新排序 wxDataViewCtrl 的列吗

c++ - 用动态内容刷新 wxGrid

c++ - 为什么在命令提示符下输入 3 时我的代码没有退出?