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):

  1. Пакет потока жидкости

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

  1. Пакетные формулы

g ++ -c -o build / формула.o -I./include src / формула.cpp -lm -m32 && ar rcs build/libformulae.a сборка / 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. Программа испытаний, пакеты 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-битный.

Другие вопросы по тегам