2012-03-24 101 views
0

我在KDevelop的C++项目中连接外部库。在的CMakeLists.txt,我有以下几点:如何让KDevelop识别Ubuntu中的环境变量?

include_directories($ENV{INCLUDE_PATH}) 
link_directories($ENV{LD_LIBRARY_PATH}) 

当我按下编译KDevelop的,它抱怨找不到外部头文件和库。如果我改变为

include_directories("/home/username/path/to/.h/files") 
link_directories("/home/username/path/to/.so/files") 

该项目编译没有错误。或者,如果我打开gnome-terminal,导航到项目目录并输入

cmake . 
make 

所有事情都可以正常编译。我认为问题在于,cmake在KDevelop调用时不了解环境变量INCLUDE_PATH和LD_LIBRARY_PATH。我已经在我的.bashrc文件中定义了这些变量。这是在Ubuntu(标准GNOME版本)中运行KDevelop的问题吗?我可以配置KDevelop来识别在.bashrc中发送的环境变量吗?

+0

当您使用Kdevelop进行编译时,是否打印$ ENV {INCLUDE_PATH}和$ ENV {LD_LIBRARY_PATH}变量?这样做来调试你的cmake文件。 – softghost 2012-03-25 15:41:05

回答

1

bashrc文件通过交互式shell读入。您可能希望将您的环境变量实际移动到始终读入的.profile文件中。一旦完成更改,注销并重新登录(甚至可能需要在某些Linux中重新启动) X11环境)。