首页 > 编程语言 > 详细

c++学习笔记(四)- 多线程 枚举 cmake

时间:2017-11-30 17:47:07      阅读:435      评论:0      收藏:0      [点我收藏+]

c++ 枚举

用到了c++11规范里的多线程,然后编译的时候就报错了,中午各种改CMakeLists没搞定,下午师弟介绍文档,cmake practice,参考第七章,搞定了。

只需要CMakeLists.txt里添加一句话:

set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++11 -pthread")

开始的时候没有-pthread能make,但运行的时候就崩溃了,参考这里解决。

根据讨论,桌面Linux环境这样就行了,如果是嵌入式交叉编译环境的话,还需要显示添加

find_package (Threads)

万一以后要写树莓派呢~

存疑:

中午试的不成功的CMakeLists是从已经编译通过的ORB_SLAM2里拿过来的,如下,当时编译没有问题,且运行tum_mono,cpu使用率从低于100%到最后能高于200%,应该3个线程都开了才会占用这么多吧,不太清楚为什么拿到自己的工程里不行。

 1 # Check C++11 or C++0x support
 2 include(CheckCXXCompilerFlag)
 3 CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
 4 CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
 5 if(COMPILER_SUPPORTS_CXX11)
 6    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
 7 elseif(COMPILER_SUPPORTS_CXX0X)
 8    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
 9 else()
10    message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
11 endif()

 

c++学习笔记(四)- 多线程 枚举 cmake

原文:http://www.cnblogs.com/zhengmeisong/p/7930076.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!