我有一些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
我在这里做错了什么?
谢谢!
答案 0 :(得分:2)
据我所知,CMake已将您的文件用作c ++文件,但gcc没有。您还必须告诉CMake向编译器添加额外的标志(在这里:http://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html表示-x选项),因此它会将您的文件视为c ++代码。
无论如何,恕我直言CMake应该自动完成。