Bulletライブラリは、2つの凸包間の衝突検出にのみ使用します。私の問題は、私のプロジェクトでライブラリをリンクし、CMakeLists.txtで指定する方法です。LinuxのC++プロジェクトでBulletを使用
Bulletライブラリをインストールする方法がわかりません。 repoをフォルダにクローンし、ビルドフォルダを作成し、cmakeでコンパイルしてインストールしました。私はCMakeLists.txtに追加することによって、自分のプロジェクトにライブラリをリンクしてみました:
find_package(Bullet REQUIRED)
include_directories(${BULLET_INCLUDE_DIR})
LINK_LIBRARIES(
BulletDynamics BulletCollision
)
私は私のプロジェクトにヘッダを追加するときにこれはまた、正常に動作します。しかし、私は弾丸ライブラリのいくつかの機能を使用する場合、私は次のコンパイルエラーが表示されます。
/usr/bin/ld: /usr/local/lib/libBulletDynamics.a(btTypedConstraint.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
私はこの問題を解決するために、それをグーグルしてみましたが、私はそれを解決することができませんでした(CMakeの私の知識とこのものは非常に基本的です)。 はまた、私は、ライブラリがプロジェクトに含まれ、その後にコンパイルする必要があることをどこかで見つかったので、私のプロジェクト構造は、このいずれかです。
test.cpp
は
my_algorithm.h
で定義されたクラスを使用するソースファイルですが、私が持っている
/trunk
CMakeLists.txt
Findmy_project.cmake
/bin
/build
/src
/examples
CMakeLists.txt
test.cpp
my_algorithm.cpp
my_algorithm.h
CMakeLists.txt
Bulletライブラリをどのようにプロジェクトにリンクさせるのか分かりません。
私の質問は要約です:どのように私のC + +プロジェクトでそれを使用するには、Bulletライブラリをリンクする必要がありますとインストールするには?
「私もどこかに見つかりました...」 - これはもう1つの問題を開始します。これは最初のものと少しは関連しています(Bulletのライブラリとのリンクエラーです)。 **問題ごとに** 1つの質問ポストを持つ方が良いです。そのため、すべての問題に対して最良の回答を集めることができます。 – Tsyvarev
私の質問はちょうど1つです、私はちょうど私が次の2つの "パス"を提示しました。 – CabaIT