东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1219|回复: 1
打印 上一主题 下一主题

[C/C++] win上的C++项目移植到Linux遇到的坑_总结

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14439
QQ
跳转到指定楼层
楼主
发表于 2021-5-13 11:41:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


win上的C++项目移植到Linux遇到的坑_总结


背景:win上开发用vs 2012 是sln的项目
     Linux上开发用 vscode   用g++ cmake管理


1、main()返回值 在Linux上必须int
2、多线程用<pthread.h> 编译的时候得加-lpthread 否则找不到多线程的函数
3、%d %ld %f %g用法严格了在linux上
4、Sleep()改为sleep()  #include <unistd.h>
Sleep()里面的单位,是以毫秒为单位
sleep()里面的单位是秒,而不是毫秒 sleep传入的参数是整形,所以不能传了小数
linux下,用g++编译,得添加unistd.h头文件,gcc则加不加都可以,因为标准C中有sleep文件了
Linux:
sleep(n); //停留n秒
usleep(n); //停留n微秒  时间太快 不好控制
Windows:
Sleep(n); //停留n毫秒
usleep不能工作在windows上,只能在linux下
为了统一还是的用usleep
5、pause函数是任意键跳出,read函数是回车键 system("pause"); 换 system("read"); 也可以不要




windows下用cmake构建项目时找不到pthread.h头文件 也会有问题


报错:
jiang@jiang-Ubuntu:~/c_c++_works/radar_suanfa_for_linux/build$ make
Scanning dependencies of target j_radar
[ 20%] Building CXX object j_libs/CMakeFiles/j_radar.dir/j_queue.cpp.o
[ 40%] Linking CXX static library libj_radar.a
[ 60%] Built target j_radar
[ 80%] Linking CXX executable radar_real_time
CMakeFiles/radar_real_time.dir/radar_real_time.cpp.o:在函数‘main’中:
radar_real_time.cpp.text+0x13ad):对‘pthread_create’未定义的引用
radar_real_time.cpp.text+0x13cf):对‘pthread_create’未定义的引用
radar_real_time.cpp.text+0x141b):对‘pthread_join’未定义的引用
radar_real_time.cpp.text+0x142c):对‘pthread_join’未定义的引用


以上的错误需要加上 -lpthread -luuid


target_link_libraries(demo -lpthread -luuid)
/usr/bin/ld: 找不到 -luuid
target_link_libraries(demo -lpthread)
遇到类似的错误,可以添加对应的链接项


radar_suanfa_for_linux_0513_完成.zip

15.5 KB, 阅读权限: 200, 下载次数: 1

让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14439
QQ
沙发
 楼主| 发表于 2021-5-13 11:42:51 | 只看该作者
编译的时候需要加上-lpthread 用来链接libpthread.so动态库,不然会提示找不到function
我的一步到位:
g++ -g -o dm01 dm01.cpp -lpthread
-g 就是输出debug信息
-o 就是输出可执行程序

让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-19 19:47 , Processed in 0.183783 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表