在Windows上编译Intel ISPC库

在Windows上编译Intel ISPC库

https://github.com/ispc/ispc clone最新代码

依赖库(工具)编译与收集

LLVM(version >= 13.0)

https://github.com/llvm/llvm-project/tree/llvmorg-14.0.6 使用14.0.6版本(经测试发现13、15、16版本的LLVM会在ISPC编译的时候遇到各自不同的问题)。CMAKE的时候-DLLVM_ENABLE_PROJECTS=‘clang’。其它依赖库如zlib和cuda自行收集吧。为了节约编译时间,在cmake-gui中将所有test项目都去掉不编译。默认编译会报错无法生成ASTNodeAPI.json文件。需要手动修改llvm-project/clang/lib/Tooling文件夹中的CmakeList.txt文件,将其中两个add_custom_command指令改为如下:
add_custom_command(
COMMENT Generate ASTNodeAPI.json
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ASTNodeAPI.json
DEPENDS clang-ast-dump clang-resource-headers
COMMAND
$<TARGET_FILE:clang-ast-dump>
–skip-processing=0
-I ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib/clang/${CLANG_VERSION}/include #for VS build
-I ${CMAKE_SOURCE_DIR}/…/clang/include
-I ${CMAKE_BINARY_DIR}/tools/clang/include
-I ${CMAKE_BINARY_DIR}/include
-I ${CMAKE_SOURCE_DIR}/include
${implicitDirs}
–json-output-path ${CMAKE_CURRENT_BINARY_DIR}/ASTNodeAPI.json
)
add_custom_command(
COMMENT Generate NodeIntrospection.inc
OUTPUT ${BINARY_INCLUDE_DIR}/NodeIntrospection.inc
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ASTNodeAPI.json
${CMAKE_CURRENT_SOURCE_DIR}/DumpTool/generate_cxx_src_locs.py
${CMAKE_CURRENT_SOURCE_DIR}/EmptyNodeIntrospection.inc.in
COMMAND
${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/DumpTool/generate_cxx_src_locs.py
–json-input-path ${CMAKE_CURRENT_BINARY_DIR}/ASTNodeAPI.json
–output-file NodeIntrospection.inc
–use-empty-implementation 0
–empty-implementation
“${CMAKE_CURRENT_SOURCE_DIR}/EmptyNodeIntrospection.inc.in”
COMMAND
${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/NodeIntrospection.inc
${BINARY_INCLUDE_DIR}/NodeIntrospection.inc
)
备注:如果是用VS编译,则需要手动设置 CMAKE_BUILD_TYPE为Debug或Release来获得正确的文件夹路径
。并且clang-ast-dump这个程序的运行依赖zlib库文件,所以需要手动将zlib.dll拷贝到clang-ast-dump.exe目录下

此外由于使用llvm-config --libnames不会给出带有CMAKE_DEBUG_POSTFIX的库文件名称,所以应该将llvm Debug和Release安装在不同的目录下,而不使用CMAKE_DEBUG_POSTFIX

FLEX (version >= 2.6)

需要头文件和exe
https://sourceforge.net/projects/winflexbison/ 下载/win_flex_bison3-latest.zip这个链接。解压后包含了头文件、win_flex.exe、win_bison.exe

bison

可复用Qt安装目录下的bison.exe或使用Flex目录下载win_bison.exe

m4

这个只需要可执行程序,直接复用Qt安装目录下的m4.exe程序即可(或自行收集)

zlib(动态库)

llvm在windows上只能编译静态库,如果llvm依赖了动态库版的zlib。则需要手动在ispc的CmakeList.txt中添加zlib。

在编译ISPC时的注意事项

编译或预编译阶段可能会用到其它的exe,如果这些exe依赖其它第三方动态库,需要将这些库文件拷贝到exe目录下使这些exe能够双击直接运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值