kdevelop:编辑CMakeLists.txt

时间:2010-07-20 15:29:06

标签: c++ cmake

我在努力让我的项目与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相关,但我不知道地球上会发生什么。

任何指示?

1 个答案:

答案 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等的大量有趣信息。