将.s文件与CMake链接

时间:2013-06-27 06:41:55

标签: gcc cmake icc ros

我有一个我想使用的c函数,但是用Intel编译器而不是gnu C编译器编译。我正在使用cmake来构建程序。 (我实际上使用ROS因此rosmake,但基数为cmake,所以我认为它更像是一个问题,而不是ROS问题。 假设使用icc构建的文件为x.c并生成x.s文件。我想在我的文件a()中使用x.c中的y.cpp函数。 在y.cpp我有:

#include "x.h" 
..... 
call a() 

如果CMakeLists.txt

,则有效
rosbuild_add_executable(y y.cpp x.c)

rosbuild_add_executable is analogous to add_executable(...) 

但如果我使用x.c构建icc并尝试包含x.s文件:

rosbuild_add_executable(y y.cpp x.s) 

它不起作用。我应该对我在a()中调用y.cpp的方式做出一些改变吗?或者是否有其他方式来链接它。

2 个答案:

答案 0 :(得分:7)

使用gcc时,可以使用C编译器编译.S文件(不需要显式调用asm)。可以告诉CMake使用

这样做
set_property(SOURCE <myfile>.S PROPERTY LANGUAGE C)

每个.S个文件。

答案 1 :(得分:3)

要使用.s个文件,您必须使用enable_language在CMake中启用汇编语言支持。

您可以在此处找到更多信息:http://www.cmake.org/Wiki/CMake/Assembler