如何设置CMAKE_C_COMPILER和CMAKE_CXX_COMPILER来构建适用于iOS的Assimp?

时间:2012-07-21 01:51:41

标签: ios cmake

当我尝试通过运行build_ios.sh来构建Assimp时,它会告诉我:

CMake Error: your C compiler: "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-g++" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.

我需要的道路是:

/Applications/XCode.app/Contents/Developer/Platforms/...

我已尝试更改DEVROOTbuild_ios.sh中的IPHONE_xxxx_TOOLCHAIN.cmake,因为这似乎是CMAKE_C_COMPILER等生成的内容,但它仍然会给我相同的错误。

3 个答案:

答案 0 :(得分:38)

选项1:

您可以在命令行设置CMake变量,如下所示:

cmake -D CMAKE_C_COMPILER="/path/to/your/c/compiler/executable" -D CMAKE_CXX_COMPILER "/path/to/your/cpp/compiler/executable" /path/to/directory/containing/CMakeLists.txt

请参阅this以了解如何创建CMake缓存条目。


选项2:

在shell脚本build_ios.sh中,您可以将环境变量CCCXX分别指向C和C ++编译器可执行文件,例如:

export CC=/path/to/your/c/compiler/executable
export CXX=/path/to/your/cpp/compiler/executable
cmake /path/to/directory/containing/CMakeLists.txt

选项3:

编辑" Assimp"的CMakeLists.txt文件:在顶部添加这些行(必须在使用project()enable_language()命令之前添加)

set(CMAKE_C_COMPILER "/path/to/your/c/compiler/executable")
set(CMAKE_CXX_COMPILER "/path/to/your/cpp/compiler/executable")

请参阅this以了解如何在CMake中使用set命令。此外,this是理解一些常见CMake变量使用的有用资源。


以下是官方常见问题解答中的相关条目:http://www.cmake.org/Wiki/CMake_FAQ#How_do_I_use_a_different_compiler.3F

答案 1 :(得分:6)

cc和cxx位于/Applications/Xcode.app内。这应该找到正确的路径

export CXX=`xcrun -find c++`
export CC=`xcrun -find cc`

答案 2 :(得分:1)

解决方案

  1. 有时会在安装g++之前创建项目。因此,请首先安装g++,然后重新创建您的项目。这对我有用。
  2. 将以下行粘贴到CMakeCache.txt中: CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++

请注意,g++的路径取决于操作系统。我已使用通过which g++

获得的fedora路径