我对 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 在做什么,而我不是。