C++: ошибка несовместимости ld при создании проекта wxWidgets в Msys с использованием библиотек C++, созданных с использованием параметров g++ и -m32
У меня есть проект C++, включая иностранный код C++ (CoolProp). Этот внешний код я скомпилировал как статическую библиотеку. Компилятор TDM-GCC версии 5.1.0 с опцией -m32. Я снова вызываю в своем коде C++, используя TDM-GCC Vers 5.1.0 с опцией -m32. Я смог скомпилировать и запустить небольшую тестовую программу командной строки. Вся последовательность компиляции (приглашение командной строки 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/ liquidflow.cpp -lCoolProp -m32 && ar rcs build/libfluidflow.a build/fluidflow.o
- Пакетные формулы
g ++ -c -o build / формула.o -I./include src / формула.cpp -lm -m32 && ar rcs build/libformulae.a сборка / 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
- Программа испытаний, пакеты Flowflow и фанкойл
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, версии 3.0. Поскольку я не вызывал свои библиотеки, я мог компилировать с помощью msys с помощью g ++ fancoil_gui.cpp wx-config --cxxflags --libs
-o fancoil_gui Когда я пытался вызвать мои библиотеки, например, libformulae.a / Formulae.h, я использую опцию -m32, и компиляция всегда заканчивается ошибкой вроде
C:/TDM-GCC-64/ бен /../ Библиотека / GCC /x86_64-W64-mingw32/5.1.0/../../../../x86_64-W64-mingw32 / бен / LD.exe: пропуск несовместимого C:/msys/1.0/local/lib/libwxregexu-3.0.a при поиске -lwxregexu-3.0
Операционная система 64-битная Windows 7
Как я могу сделать это, не создавая ошибок?
1 ответ
Не похоже на ошибку. У вас есть 64-битная библиотека в PATH, но вы просите компоновщика найти 32-битную. Он просто говорит вам, что игнорирует 64-битный.