我有一个简单的项目。它包含两个文件:
main.c
kernel.ispc
(ispc文件是https://ispc.github.io/的源代码)
要手动编译我将使用的文件:
ispc --target=sse2 kernel.ispc -o kernel.o
gcc -c main.c -o main.o
gcc main.o kernel.o -o my_program
因此,对于我的cmake文件,它看起来似乎是
project(my_program)
add_executable(my_program main.c)
但当然它不会链接,因为它在kernel.o
中缺少符号所以问题是:
如何让cmake使用kernel.ispc
编译器编译ispc
,如何让cmake将其链接到my_program
?
答案 0 :(得分:2)
如何使用ispc编译器让cmake编译kernel.ispc?
只需使用add_custom_command:
add_custom_command(OUTPUT kernel.o
COMMAND ispc --target=sse2 ${CMAKE_SOURCE_DIR}/kernel.ispc -o kernel.o
DEPENDS kernel.ispc)
如何获取cmake然后将其链接到
my_program
?
从CMake视图来看,.o
文件只是可执行文件的另一个来源:
add_executable(my_program main.c kernel.o)
答案 1 :(得分:0)
我知道这是一个老问题,但 CMAKE 3.19 现在内置了对 ISPC 的支持。