Ubuntu16.04編譯VIORB過程中遇到的問題 尤其是rosbag的問題
下面的連結是非常非常有用的,很詳盡,筆芯博主。
https://blog.csdn.net/Amazingren/article/details/82357179
尤其是解決了我關於rosbag報錯的問題,undefined reference to XXX
看到這些報錯我也很頭大很生氣很生氣,以前跑得賊溜的程式碼也不能make了,打擊:
Scanning dependencies of target VIO
[ 66%] Building CXX object CMakeFiles/VIO.dir/src/MsgSync/MsgSynchronizer.cpp.o
[ 66%] Building CXX object CMakeFiles/VIO.dir/src/ros_vio.cc.o
[100%] Linking CXX executable ../VIO
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `bool rosbag::Bag::readField<unsigned int>(std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&, std::string const&, bool, unsigned int*) const':
ros_vio.cc:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN5boost10shared_ptrIKN11sensor_msgs4Imu_ISaIvEEEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[_ZN3ros27SubscriptionCallbackHelperTIRKN5boost10shared_ptrIKN11sensor_msgs4Imu_ISaIvEEEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE]+0x6f7): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `boost::shared_ptr<sensor_msgs::Imu_<std::allocator<void> > > rosbag::Bag::instantiateBuffer<sensor_msgs::Imu_<std::allocator<void> > >(rosbag::IndexEntry const&) const':
ag3Bag17instantiateBufferIN11sensor_msgs4Imu_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE[_ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs4Imu_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE]+0x3df): undefined reference to `rosbag::Bag::readField(std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&, std::string const&, bool, std::string&) const'
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > > rosbag::Bag::instantiateBuffer<sensor_msgs::Image_<std::allocator<void> > >(rosbag::IndexEntry const&) const':
ros_vio.cc:(.text._ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs6Image_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE[_ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs6Image_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE]+0x3df): more undefined references to `rosbag::Bag::readField(std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&, std::string const&, bool, std::string&) const' follow
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `main':
ros_vio.cc:(.text.startup+0x5f): undefined reference to `ros::init(int&, char**, std::string const&, unsigned int)'
ros_vio.cc:(.text.startup+0x216): undefined reference to `ros::NodeHandle::NodeHandle(std::string const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&)'
collect2: error: ld returned 1 exit status
CMakeFiles/VIO.dir/build.make:268: recipe for target '../VIO' failed
make[2]: *** [../VIO] Error 1
CMakeFiles/Makefile2:163: recipe for target 'CMakeFiles/VIO.dir/all' failed
make[1]: *** [CMakeFiles/VIO.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2Launch file in Examples/ROS/ORB_VIO/launch.
以至於看到make到66就會內心顫抖,就知道卡死了。。。
之前ubuntu16.04的g++和gcc版本是5.4.0,為了配合matlab程式設計,將其降到啦4.9,導致了後來make不成功的問題,
將其版本升級:
sudo apt-get remove gcc
sudo apt-get install gcc
檢視gcc和g++版本可使用:
gcc -v
g++ -v
輸入g++的時候,系統會提示安裝g++的指令,複製貼上即可。
這之後又碰到新問題了:
Could NOT find CHOLMOD (missing: CHOLMOD_INCLUDE_DIR CHOLMOD_LIBRARIES)
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
安裝相關依賴項就解決問題了:
sudo apt-get install libsuitesparse-dev
現在所有的程式碼都能正常執行啦~。~
相關文章
- 爬蟲過程中遇到的問題爬蟲
- vscode 自定義c++標頭檔案,編譯過程中遇到的問題VSCodeC++編譯
- 學習vue過程中遇到的問題Vue
- Latex — 寫作編譯過程中遇到問題記錄與總結編譯
- 電商APP測試過程中遇到的問題APP
- Mac電腦使用imazing過程中遇到的問題Mac
- Composer 使用過程中遇到的問題和解決方案
- Flutter開發過程中遇到的問題記錄Flutter
- PYTORCH安裝過程以及遇到的問題PyTorch
- zlib庫編譯過程遇到的問題及其使用zlib庫進行解壓縮編譯
- 安裝gcc過程中遇到相互依賴的問題GC
- 皮膚開發過程中遇到的3個問題
- ORACLE RAC TO RAC DG搭建過程中可能遇到的問題Oracle
- 在效能測試的過程中會遇到哪些問題?
- Laravel6.18.0 NPM 編譯時遇到的問題LaravelNPM編譯
- lombok編譯遇到“找不到符號的問題”Lombok編譯符號
- 遇到的編碼問題、時區問題整理
- 關於ubuntu安裝中過程遇到問題Ubuntu
- 如何處理六西格瑪過程中遇到的問題?
- thrift使用過程中的問題
- 配置pycharm 編譯器時遇到的一些問題PyCharm編譯
- JVM調優——Java動態編譯過程中的記憶體溢位問題JVMJava編譯記憶體溢位
- ASR專案實戰-交付過程中遇到的核心崩潰問題
- 記錄在使用Django開發過程中遇到的問題No.2Django
- Android開發過程中遇到的問題以及解決辦法 how toAndroid
- Filebeat和logstash 使用過程中遇到的一些小問題記錄
- 【問題記錄】—.NetCore 編譯問題NetCore編譯
- laravel使用中遇到的問題Laravel
- Hodoop配置中遇到的問題OdooOOP
- 工作中遇到的問題
- javaweb中自己遇到的問題JavaWeb
- 編譯Android14遇到lunch不顯示target的問題編譯Android
- 安裝yeoman,grunt過程中的問題
- libmemcached編譯問題IBM編譯
- SPI編譯問題編譯
- myeclipse2017破解過程以及遇到的破解失敗的問題Eclipse
- oracle 11.2.0.4 DataGuard Broker配置過程中可能遇到的問題及解決方法Oracle
- go的編譯優化問題Go編譯優化