標籤:erro ati linux 第七章 環境 報錯 bsp use 學習筆記
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