我有一个我想使用的 c 函数,但它是用Intel
编译器而不是gnu
C
编译器。我在用着cmake
构建程序。
(我实际上正在使用ROS
因此rosmake
但基础是cmake
所以我认为这更多是一个 cmake 问题而不是ROS
问题)。
假设使用构建的文件icc
is x.c
并产生一个x.s
文件。我想使用该功能a()
from x.c
在我的文件中y.cpp
.
In y.cpp
I have:
#include "x.h"
.....
call a()
如果CMakeLists.txt
has
rosbuild_add_executable(y y.cpp x.c)
rosbuild_add_executable is analogous to add_executable(...)
但如果我建造x.c
with icc
并尝试包括x.s
文件代替:
rosbuild_add_executable(y y.cpp x.s)
这不起作用。我应该对打电话的方式做一些改变吗a()
in y.cpp
?或者有其他方式来链接它。
使用gcc时,可以编译.S
使用 C 编译器生成文件(不需要显式调用 asm)。可以使用以下命令告诉 CMake 这样做
set_property(SOURCE <myfile>.S PROPERTY LANGUAGE C)
对于你的每一个.S
files.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)