私は CMake の初心者で、Qt4 を使用して画像操作を行う単純な静的ライブラリを作成しようとしました。
cmake_minimum_required(VERSION 2.8)
project(timage)
find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})
include_directories(
"${PROJECT_SOURCE_DIR}/include"
)
add_library(
timage
${PROJECT_SOURCE_DIR}/source/timage.cpp
)
target_link_libraries(
timage
${QT_LIBRARIES}
)
私はそれを構成して生成することができ、それは正常にビルドすることさえできますlibtimage.a
。今、私はそれを私のメインプロジェクトに含めたいと思っています.ここで問題が始まります.
いくつかの単体テストから始めましたが、すでにリンカー エラーが発生しています (クラスundefined reference
の関数呼び出しごとに)。TImage
単体テストを作成しましたg++ -Wall -Wextra -std=c++11 -I../include -L../bin -ltimage -o test spec.cpp
個人的には、Qt4 の作業以外に初心者向けのチュートリアルに対して行っていることとの違いはわかりません。誰かがここで正しい方向へのヒントを教えていただければ幸いです。
更新 この CMake ファイルを使用してテストをビルドすると、次のことがわかりました。
link_directories(
${PROJECT_BINARY_DIR}
)
add_definitions("-std=c++11")
add_executable(
test
spec.cpp
)
target_link_libraries(
test
timage
)
すべてが期待どおりに機能します。私は現在、CMakeがしていないことを見つけようとしています。