CMake 和非标准扩展

CMake and non-standard extensions

本文关键字:扩展 非标准 CMake      更新时间:2023-10-16

我有一些C++源代码,出于正当理由,它们不以".cpp"或".cc"或任何其他通常的C++扩展名结尾。我想用CMake将其编译成可执行文件。

我目前非常简单的 CMake 脚本是:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(test)
SET_SOURCE_FILES_PROPERTIES(test_mycode.foo PROPERTIES LANGUAGE CXX)
ADD_EXECUTABLE(test test_mycode.foo)

据我了解,SET_SOURCE_FILES_PROPERTIES(...)应该是使Cmake将"test_mycode.foo"识别为C++文件所需的全部内容。但是,当我尝试编译时,它失败并显示以下错误:

/usr/bin/c++ -o CMakeFiles/test.dir/test_mycode.foo.o -c test/test_mycode.foo
c++: test/test_mycode.foo: linker input file unused because linking not done

我在这里做错了什么?

谢谢!

据我所知,CMake 已将您的文件用作 c++ 文件,但 gcc 没有。您还必须告诉 CMake 向编译器添加额外的标志(查看此处:http://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html for -x 选项),以便它将您的文件视为 c++ 代码。

无论如何,恕我直言,CMake 应该自动执行此操作。