为什么在Linux下面编译的时候提示要重新定义"struct iovec"

为什么在Linux下面编译的时候提示要重新定义"struct iovec",第1张

问题分析:这个是由于你的内核头文件和你的C编译器的头文件有冲突,你需要确认他们是否是匹配使用的。解决:1.去掉/usr/include/sys/uio.h里面关于“struct iovec”的定义;2.在编译选项的EXTRA_CFLAGS里面加入-DNO_WRITEV并重新编译(不推荐使用,因为会造成性能的降低)

犯了几个错误。

1、编译程序你用root账号干嘛?

2、PATH是用来指定可执行程序的位置,你把库文件位置放进去,指望这个静态库直接执行么?

3、export和source只需要一条就可以了。

解决方法:echo "/home/power/mkllib" >/etc/ld.so.conf.d/mkllib.confldconfig

从截图上看,编译过程中找到了libmkl_solver_lp64.a,但由于兼容性问题被忽略了,我想这才是你需要努力的方向。

ubuntu是Linux的一种,所以Linux的编译器gcc同样也适用于ubuntu。

要在ubuntu下编译gcc,可以按照如下步骤。

1,确认gcc是否安装

Ubuntu的标准安装,会同步安装gcc编译器,如果没有安装,那么需要手动安装。

在shell下,打gcc --version,如果可以正确显示版本信息,表示已经安装,可以忽略第二步。

2,安装gcc。

在shell下,使用命令

sudo apt-get build-depgcc

即可智能下载安装gcc,前提为系统需要联网。

3, 执行编译。

执行C语言编译的最简命令为

gcc c_files -o target_name

其中c_files为所有需要编译的C文件列表,target_name为生成的可执行文件名。

执行后,如果有错误,那么需要根据错误进行修改源程序,直至没有错误为止,这时会生成一个与之前设定的target_name同名的可执行文件。通过

./target_name

可以运行该程序。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8342669.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存