如macos,cmake默认其实是使用clang的,编译一些比较新的开源项目,一些编译选项就用了,像多项模板也使用不了。如clang: error: unknown argument: '-floop-strip-mine'
如 模板 template<int32_t bits = 0, int32_t exp = 0>
void SaveToDisk(const char* const dictionary)
这些。
这时候可以指定gcc为编译器,可以使用CC和CXX来定义 ,不过还是使用cmake本身的宏定义比较好CMAKE_C_COMPILER
和 CMAKE_CXX_COMPILER
。使用方法如下:
cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ ..
cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc-14 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++-14 ..