C++:使用 g++ 和 -m32 选项构建的 c++ 库在 Msys 下构建 wxWidgets 项目时出现 ld 不
C++: ld incompatibility error when building a wxWidgets project under Msys using c++ libraries that are built with with g++ and -m32 option
我有一个C++项目,包括外来C++代码(CoolProp)。这个外来代码我编译为静态库。编译器是带有 -m32 选项的 TDM-GCC Vers 5.1.0。我使用 TDM-GCC 版本 5.1.0 和 -m32 选项再次调用我的C++代码。我能够编译并运行一个小型命令行测试程序。整个编译序列(Windo 命令行提示符或 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
如何在不产生错误的情况下执行此操作?
看起来不像错误。你在 PATH 上有一个 64 位库,但你要求链接器查找一个 32 位库。它只是告诉你它忽略了 64 位的。
- 无法在 CLion 中构建 C++ 项目
- 文本冒险游戏 - 如何区分一种项目类型与另一种项目类型以及如何构建项目类/子类
- 使用 Premake5 构建项目不会生成可执行文件或中间体
- 在OSx:ld上使用CMake构建C++项目:找不到体系结构x86_64的符号
- 无法从 bazel 使用 boost/iostream 构建项目包
- 如何使用MSBUILD V15构建C 项目
- 在Omnet 中构建项目时发生错误
- 如何一次在Visual Studio 2015和Visual Studio 2002中构建C 项目
- 在构建C++项目时提升相关错误
- Unity webGL - MacOS 上的构建项目失败
- 使用CMAKE,NINJA和CLANG构建项目,以竞争2019年
- 在使用Bazel Build构建项目期间,处理/选择界面的不同实现
- 当您的外部SDK仅具有.dll,.lib,.h文件时,如何链接和构建项目
- 尝试在Qt中升级Debian后构建项目
- 使用 Conan C/C++ 包管理器构建项目
- CMAKE:构建项目时执行C 文件
- 从VS2008升级后,VS2012中的构建项目显示错误
- OPENCV,使用CMAKE构建C 项目时的链接错误
- Eclipse 在添加 .h 和 .cpp 文件后不会构建项目
- 如何在Xcode4上从头开始构建C++项目-链接现有和新的外部库