Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将英特尔编译器变量包含到CMake生成文件中 我使用Cuff2.2.6和最新的英特尔C++编译器,用于编译Linux、MaCOSX和Windows的程序。对于开发,我在Linux和MacOSX上使用Eclipse和CDT_Macos_Cmake_Environment Variables_Eclipse Cdt - Fatal编程技术网

将英特尔编译器变量包含到CMake生成文件中 我使用Cuff2.2.6和最新的英特尔C++编译器,用于编译Linux、MaCOSX和Windows的程序。对于开发,我在Linux和MacOSX上使用Eclipse和CDT

将英特尔编译器变量包含到CMake生成文件中 我使用Cuff2.2.6和最新的英特尔C++编译器,用于编译Linux、MaCOSX和Windows的程序。对于开发,我在Linux和MacOSX上使用Eclipse和CDT,macos,cmake,environment-variables,eclipse-cdt,Macos,Cmake,Environment Variables,Eclipse Cdt,直到最近,我才使用CMake创建我从控制台运行的常用Make文件。为了有一个工作环境,英特尔编译器附带了一个名为iccvars.sh的shell脚本,它可以是sourced来设置所有必需的include和library路径 现在我决定给EclipseCDT构建系统一个机会,并使用CMake的“EclipseCDT4-UnixMakefiles”生成器创建一个Eclipse项目文件。在Linux下一切正常,但在OSX下,Eclipse不知道环境变量,因此缺少像DYLD\u LIBRARY\u PA

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

现在我决定给EclipseCDT构建系统一个机会,并使用CMake的“EclipseCDT4-UnixMakefiles”生成器创建一个Eclipse项目文件。在Linux下一切正常,但在OSX下,Eclipse不知道环境变量,因此缺少像
DYLD\u LIBRARY\u PATH
这样的路径,编译停止,因为找不到库

更新

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

cmake -G "Eclipse CDT4 - Unix Makefiles" path/to/src
在执行
源iccvars.sh
且所有环境变量设置正确的终端内。如果我在那里创建了一个普通的Makefile并运行
make
,编译就会成功。这是因为
DYLIB\u LIBRARY\u PATH
(在Linux中
LD\u LIBRARY\u PATH
)设置正确,并且我不必将
-L/PATH/to/libs
作为编译器的选项

但相反,我启动Eclipse并导入创建的
.project
,该项目运行良好。问题是Eclipse不知道控制台中的环境,因此无法找到所需的库。一种解决方案是在
CMakeLists.txt
中使用
find_library
并找到每个所需的库,因为这样创建的makefile中应该包含完整路径。相反,我想知道是否

问题:是否有办法将
iccvars.sh
源代码输入到我的CMakeLists.txt中,以便即使我不在通常的终端环境中,路径也可用?还有其他的可能性吗


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

如果该
iccvars.sh
脚本仅设置了环境,则可以在运行它之后立即尝试生成CDT项目:
iccvars.sh&&cmake-G“EclipseCDT4或其他”项目/dir
。如果这样做有效,就不需要每次编译前都运行它了。@arrowdodger是的,我就是这么做的。我在正确的环境中运行cmake。请在帖子中查看我的更新。