最近、自分のプロジェクト用のダイナミックリンクライブラリを見つけました。ここで見つけることができます。しかし、それを機能させるのは本当に難しいです。ダウンロードしたのは、.dllファイルといくつかの.hヘッダーです。私のIDEはQtSDk1.2(Qt 4.8.1)です。
デモコードをコンパイルした後、私のコンパイラは、'dllexport'属性のために'シンボル'Ped::LIBPEDSIM_VERSION'に外部リンケージが必要であると文句を言います。
ped_includes.hにあります。そこで、検索した後、ファイルにextern"C++"を追加しました。これで、次のようになります。
#ifndef _ped_includes_h_
#define _ped_includes_h_ 1
#include "ped_agent.h"
#include "ped_obstacle.h"
#include "ped_waypoint.h"
#include "ped_scene.h"
extern "C++" //what I added.
namespace Ped {
const double LIBEXPORT LIBPEDSIM_VERSION = 2.2;
}
#endif
今回はエラーがなくなり、XX :: XX :: XX()への未定義の参照エラーが多数発生します。dllのパスを.proファイルに追加しようとしました。
LIBS += -LE:\\klive\\code\\QtProgram\\libpedsim-example\\libpedsim.dll
しかし、それは機能しません。
ここで知りたいのは、「ped_includes.h」を正しく変更したかどうか、およびexternステートメントがある場合とない場合の違いは何ですか?さらに、リンケージエラーを解決する方法は?