CMake 和非标准扩展
CMake and non-standard extensions
我有一些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 应该自动执行此操作。
相关文章:
- C4204:使用的非标准扩展:非常量聚合初始值设定项
- 在双重继承的情况下如何处理非标准构造函数
- CMake 不编译具有非标准扩展名的文件
- 定义具有非标准签名的自定义映射比较器
- 我想获取点的属性,它报告错误 C3867:"point::output_x":非标准语法;使用"&"创建指向成员的指针
- 非标准语法,使用 & 创建指向成员的指针
- 在Qt中链接具有非标准名称的lib文件
- 非标准语法使用 '&' 创建指向成员 C++ 的指针
- 是否可以在可变参数模板函数中扩展非可变参数?
- WINAPI EnumWindowsProc:非标准语法;使用 & 创建指向成员的点
- Vulkan-hpp 是reinterpret_casting非标准布局类到另一个类.这合法吗?
- 'cv::Mat::type':非标准语法;使用 '&' 创建指向成员的指针
- registerPointPickingCallback (PCLViewer::callback_Test,(void*)&viewer);返回 C3687 非标准语法;使用"&"创建指向成员的指针
- 警告 C4481 枚举中使用的非标准扩展名'MyEnum'限定名称中使用
- 使用CMake时出现非标准扩展链接错误
- C4211:使用了非标准扩展:将extern重新定义为static
- CMake 和非标准扩展
- 警告C4238:使用了非标准扩展:类右值用作左值
- 在unique_ptrs向量中搜索时出现非标准扩展警告
- 交换unique_ptr(非标准Microsoft C++扩展)