将Intel编译器变量包含在CMake makefile中

时间:2012-02-14 13:17:36

标签: macos cmake environment-variables eclipse-cdt

我正在使用CMake 2.8.6和最新的英特尔C ++编译器来为Linux,MacOSX和Windows编译的程序。对于开发,我在Linux和MacOSX上使用Eclipse和CDT。

直到最近我才使用CMake创建我从控制台运行的常用Makefile。为了拥有一个工作环境,英特尔编译器附带了一个名为iccvars.sh的shell脚本,可以source来设置所有必需的包含和库路径。

现在我决定给Eclipse-CDT构建系统一个机会,并使用CMake的“Eclipse CDT4 - Unix Makefiles”生成器来创建Eclipse项目文件。在Linux下一切正常,但在OSX下,Eclipse不知道环境变量,因此缺少DYLD_LIBRARY_PATH之类的路径,编译因为找不到库而停止。

更新

让我更详细地解释一下我的所作所为。我正在跑步

cmake -G "Eclipse CDT4 - Unix Makefiles" path/to/src

来自执行source iccvars.sh的终端,并且所有环境变量都已正确设置。如果我在那里创建了一个普通的Makefile并运行make,那么编译就会成功。这是因为DYLIB_LIBRARY_PATH(在Linux LD_LIBRARY_PATH中)设置正确,我不必将-L/path/to/libs作为编译器的选项。

但是,我启动Eclipse并导入创建的.project,它可以正常工作。问题是Eclipse在控制台中不了解我的环境,因此无法找到所需的库。一种解决方案是在find_library内使用CMakeLists.txt并找到每个必需的库,因为完整的路径应该包含在创建的Makefile中。相反,我想知道是否......

问题:有没有办法iccvars.sh发送到我的CMakeLists.txt ,这样即使我不在我的路径中也可以使用这些路径通常的终端环境?还有其他可能性吗?

请注意,我知道您可以在OSX下为GUI程序设置环境变量。您要做的是在environment.plist下的家中创建文件~/.MacOSX。在这个xml文件中,您将GUI程序应具有的所有变量。这适用于其他应用程序,但尤其是Eclipse构建器似乎忽略了这一点。

0 个答案:

没有答案