-1

あなたの助けが必要です。

Windows 8 に制約ベースのシステムとアプリケーションを開発するためのツールキットGecode 4.4.0と、コンパイラ C++ Dev C++ 5.9.2をインストールしましたが、最初のプログラムや、挿入。

メイクファイルが必要だと読みましたが、実際にはまだコンパイルまたは実行に成功していません。

コンパイルコマンド:

g++.exe -D__DEBUG__ main.o sat.o -o TestGecode.exe -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib32" -L"C:/Program Files (x86)/Dev- Cpp/MinGW64/x86_64-w64-mingw32/lib32" -static-libgcc -L"C:/Program Files (x86)/Gecode/include" -m32 -g3

出力エラー:

sat.o: 関数ZN6Gecode9ExceptionD2Ev': c:/program files (x86)/dev-cpp/mingw64/x86_64-w64-mingw32/include/gecode/support/exception.hpp:46: undefined reference to_imp___ZTVN6Gecode9ExceptionE' 内 sat.o: 関数ZN6Gecode15MemoryExhaustedC1Ev': c:/program files (x86)/dev-cpp/mingw64/x86_64-w64-mingw32/include/gecode/support/exception.hpp:90: undefined reference to_imp___ZN6Gecode9ExceptionC2EPKcS2_' 内 sat.o: 関数 `ZNK6Gecode9PosChoice7archiveERNS_7ArchiveE' 内: ...

4

1 に答える 1

0

-L"C:/Program Files (x86)/Gecode/include"

ライブラリへのパスではなく、Gecode ヘッダーへのパスをライブラリ パスとして g++ に提供します。使用を検討してください

-L"C:/Program Files (x86)/Gecode/lib"

代わりは。

-Lライブラリを見つける場所にリンカーを向けるだけです。どのライブラリを使用するかをリンカに指示しません。-l <name of library>コマンドラインでも必要です。Gecode のドキュメントには、必要な機能を得るためにどのライブラリをリンクすればよいかが記載されています。簡単に読むと、GecodeSupport に が含まれていることが示唆されますGecode::Exception。残念ながら、それはすぐには出てこず、Gecode::Exceptionドキュメントページでそれを言います。-lGecodeSupport<version number>コマンドラインに追加する必要があります。

警告: Gecode サイトで提供されている Windows 用の事前にパッケージ化されたバージョンのいずれかをインストールした場合、それらはすべて Visual Studio 用のように見え、GCC には認識されません。ソースから Gecode をダウンロードしてビルドした場合は、準備完了です。

于 2016-02-02T20:55:06.263 に答える