我在努力让我的项目与kdevelop一起工作时遇到了麻烦。
在CMakeLists.txt中,我已经包含了我使用的库的路径:
cmake_minimum_required(VERSION 2.4.6)
PROJECT(Ormapi)
INCLUDE_DIRECTORIES("/dir/whatever/local/dir/include") < here is defined global.h
INCLUDE_DIRECTORIES("/dir/whatever/local/src")
ADD_EXECUTABLE(Ormapi main.cpp OrmAPI.cpp)
main.cpp使用我在OrmAPI.cpp中定义的类的实例。 问题是当我尝试创建上面的included_directories中定义的任何其他类的实例时,我得到两个错误“undefined reference to”和“undefined reference to”。
这是来自OrmAPI.cpp构造函数的调用(Global是包含在目录中的类):
OrmAPI::OrmAPI(){
Global::dirs()->addResourceDir("mydir");
}
我99%确定它与CMakeLists.txt相关,但我不知道地球上会发生什么。
任何指示?
答案 0 :(得分:4)
终于找到了问题:
cmake_minimum_required(VERSION 2.4.6)
PROJECT(Ormapi)
INCLUDE_DIRECTORIES("/dir/whatever/local/dir/include") < here is defined global.h
INCLUDE_DIRECTORIES("/dir/whatever/local/src")
ADD_EXECUTABLE(Ormapi main.cpp OrmAPI.cpp)
target_link_libraries(Ormapi /dirdir/lib.so) <<<
由于我正在创建在这些路径中声明的对象的实例,所以我也必须包含一个共享库。但它必须在ADD_EXECUTABLE之后。我正在从另一边读取依赖树。
BTW:我发现here有关处理Makefile,CMakeLists等的大量有趣信息。