37

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

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/...

我尝试更改and DEVROOT,因为这似乎是从中生成 etc 的内容,但它仍然给我同样的错误。build_ios.shIPHONE_xxxx_TOOLCHAIN.cmakeCMAKE_C_COMPILER

4

3 回答 3

73

选项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

请参阅内容以了解如何创建 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")

请参阅内容以了解如何set在 CMake 中使用命令。这也是了解一些常见 CMake 变量的使用的有用资源


以下是官方常见问题解答中的相关条目:https ://gitlab.kitware.com/cmake/community/wikis/FAQ#how-do-i-use-a-different-compiler

于 2014-03-24T19:44:13.353 回答
12

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

export CXX=`xcrun -find c++`
export CC=`xcrun -find cc`
于 2016-11-04T13:16:10.297 回答
1

解决方案

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

请注意g++取决于操作系统的路径。我使用了我的 Fedora 路径which g++

于 2020-07-09T10:09:49.797 回答