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

时间:2016-03-14 20:15:30

标签: 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. 包装流体流量
  2.   

    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. 包装公式
    2.   

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

      1. 包裹fancoil
      2.   

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

        1. 封装电路
        2.   

          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. 包裹单元格
          2.   

            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. 测试程序,包装流体流量&风机盘管
            2.   

              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

              如何在不创建错误的情况下执行此操作?

1 个答案:

答案 0 :(得分:2)

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