3

我有一个简单的项目。它包含两个文件:

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 中的符号

所以问题是:如何让 cmakekernel.ispc使用编译器进行ispc编译,以及如何让 cmake 然后将其链接到my_program.

4

2 回答 2

5

如何让 cmake 使用 ispc 编译器编译 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)
于 2017-02-15T07:08:11.020 回答
0

我知道这是一个老问题,但是 CMAKE 3.19 现在已经内置了对 ISPC 的支持。

于 2021-01-05T00:43:13.487 回答