当前位置: 首页 > news >正文

如何解决使用 ISPC 构建编译项目代码的时候出现_ISPCAlloc、_ISPCLaunch、_ISPCSync的连接器错误

一般在编译 ISPC 代码到时候,构建方法如下:

$ ispc add.ispc -o add.o -h add.h
$ g++ main.cpp add.o 

但是在一些情况下连接器会报以下错误:

$ g++ main.cpp add.o 
Undefined symbols for architecture x86_64:"_ISPCAlloc", referenced from:_add_ispc___un_3C_uni_3E_un_3C_uni_3E_un_3C_uni_3E_ in add.o_add_ispc in add.o"_ISPCLaunch", referenced from:_add_ispc___un_3C_uni_3E_un_3C_uni_3E_un_3C_uni_3E_ in add.o_add_ispc in add.o"_ISPCSync", referenced from:_add_ispc___un_3C_uni_3E_un_3C_uni_3E_un_3C_uni_3E_ in add.o_add_ispc in add.o
ld: symbol(s) not found for architecture x86_64

出现这个问题是因为你使用了 ISPC 中的task,这就需要使用 ISPC 任务系统(ISPC tasking system)。

但是 ISPC 默认是不包含任务系统,需要编译的时候添加。代码在一个名为tasksys.cpp的文件中,你可以在https://github.com/ispc/ispc/tree/main/examples/common找到这个文件,建议保存到一个位置方便后续的使用

接下来假设这个文件在你的项目目录中,如下(当然你也可以放到一个固定位置,这样每个项目都只用访问这个位置即可):

请添加图片描述

接下来按照以下命令进行构建:

$ ispc add.ispc -o add.o -h add.h
$ g++ --std=c++11 main.cpp add.o tasksys.cpp -o add

如果不使用--std=c++11也可以正常运行,但是编译的时候会提示:

$ g++ main.cpp add.o tasksys.cpp -o ad
tasksys.cpp:159:18: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]TaskInfo() = default;^
1 warning generated.

这时候就能看到编译好了,也可以正确运行。

如果你使用的是 CMake 来构建项目,那么记得在CMakeLists.txt中的target_sources部分添加tasksys.cpp

希望能帮到有需要的人~

http://www.lryc.cn/news/154693.html

相关文章:

  • Hadoop 集群一直处于安全模式,强制退出后出现数据丢失警告。解决方法
  • 四旋翼飞行器基本模型(MatlabSimulink)
  • P1116 车厢重组(冒泡排序)
  • Android逆向学习(番外一)smali2java部分文件无法反编译的bug与修复方法
  • go语言基本操作---三
  • ArcGIS Enterprise + ArcGIS Pro 常用服务类型发布
  • 优思学院|亲和图案例:寻找六西格玛的项目
  • tomcat 的缓存机制
  • laravel 压缩文件与解压文件
  • kind搭建k8s集群用于测试
  • 软件测试人需要掌握的测试知识架构体系(上)
  • QT数据库,实现数据库增删改查
  • SQL-子查询
  • 【8章】Spark编程基础(Python版)
  • 桌面应用小程序,一种创新的跨端开发方案
  • 将本地jar打包到本地maven仓库或maven私服仓库中
  • java 实现建造者模式
  • 串行FIR滤波器
  • Spring Boot 整合 Shiro(后端)
  • 面试中的自我介绍:首印象决定一切
  • 深入理解联邦学习——联邦学习的价值
  • linux 内存一致性
  • Vue 如何监听 localstorage的变化
  • ActiveMQ使用JDBC持久化消息
  • 光环云出席Enjoy出海AIGC主题研讨会,助力企业迎接AI时代机遇与挑战
  • 动态规划:路径和子数组问题(C++)
  • 微服务-gateway跨域配置
  • 爬虫项目(二):中国大学排名
  • 十二、MySQL(DQL)分组/排序/分页查询如何实现?
  • 设计模式概念学习