g2o庫出現undefined reference to錯誤

g2o庫出現undefined reference to錯誤


1.我的CMkeLists.txt

cmake_minimum_required(VERSION 2.6)
project(g2o_learn)

set(CMAKE_CXX_FLAGS "-std=c++11")

include_directories("/usr/include/eigen3")
find_package(g2o REQUIRED)
include_directories(${g2o_INCLUDE_DIRS})
find_package( OpenCV REQUIRED )                          
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(g2o_learn main.cpp)

target_link_libraries( g2o_learn ${OpenCV_LIBRARIES}) 
target_link_libraries(g2o_learn ${g2o_LIBRARIES})
install(TARGETS g2o_learn RUNTIME DESTINATION bin)

在這之後,編譯程序的時候,出現undefined reference to錯誤,基本上所有的g2o的模塊都找不到,
解決方法如下

1. 找到下載g2o庫的文件夾下,進入cmake_modules文件夾下,找到FINDG2O.cmake,然後複製到cpp目錄下的cmake文件夾下,然後修改CMakeList.txt文件,修改後的文件內容如下

cmake_minimum_required(VERSION 2.6)
project(g2o_learn)

set(CMAKE_CXX_FLAGS "-std=c++11")


list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)


include_directories("/usr/include/eigen3")

find_package(g2o REQUIRED)
include_directories(${g2o_INCLUDE_DIRS})
find_package( OpenCV REQUIRED )                          
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(g2o_learn main.cpp)
target_link_libraries( g2o_learn ${OpenCV_LIBRARIES}) 
#target_link_libraries(g2o_learn ${g2o_LIBRARIES})

target_link_libraries(g2o_learn g2o_core g2o_stuff)
install(TARGETS g2o_learn RUNTIME DESTINATION bin)

Thank for your reading !!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章