0

外部 C++ コード (CoolProp) を含む C++ プロジェクトがあります。この外部コードは、静的ライブラリとしてコンパイルしました。コンパイラは -m32 オプション付きの TDM-GCC Vers 5.1.0 です。-m32 オプション付きの TDM-GCC バージョン 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_simple.exe

次に wxWidgets, Vers 3.0 で GUI プログラムを作ってみました。ライブラリを呼び出さなかった限り、g++ fancoil_gui.cpp wx-config --cxxflags --libs-o fancoil_gui で msys を使用してコンパイルできました 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: -lwxregexu-3.0 の検索時に互換性のない C:/msys/1.0/local/lib/libwxregexu-3.0.a をスキップする

オペレーティング システムは 64 ビット Windows 7 です

エラーを作成せずにそれを行うにはどうすればよいですか?

4

1 に答える 1

2

エラーのようには見えません。PATH に 64 ビットのライブラリがありますが、リンカに 32 ビットのライブラリを探すように要求しています。64ビットのものを無視していると言っているだけです。

于 2016-03-14T20:19:15.370 に答える