1. Problemhintergrund
Erstellte zuvor ein neues Projekt. Die Projektdatei wird verteilt als
1. src/MROR.cpp
2.include/MROR.h
3.main.cpp
Undefinierter Verweis toxx erscheint, wenn cmake ausgeführt wird, was darauf hinweist, dass der Funktionsaufruf des Klassenmitglieds in der Hauptfunktion keine Deklaration hat, aber alle Deklarationen in MROR.h geschrieben wurden
Zweitens, die Lösung
Ich habe viele Online-Informationen überprüft
Lösung
1) Möglicherweise ist die MROR.cpp-Datei nicht mit dem Projekt verknüpft und die cpp-Datei enthält die pcl-Bibliothek, die möglicherweise nicht kompiliert und verknüpft wird
include_directories(${PCL_INCLUDE_DIRS} include)
add_library(${PROJECT_NAME}_core src/MROR.cpp)
target_link_libraries(${PROJECT_NAME}_core ${PCL_LIBRARIES})
add_executable(MROR_exe main.cpp src/MROR.cpp)
target_link_libraries(MROR ${PCL_LIBRARIES} ${PROJECT_NAME}_core)
Das Ergebnis ist immer noch ein Fehler
2) Die Funktionsvorlage kann im Projekt verwendet werden, was dazu führt, dass cmake keinen Fehler meldet.
Führen Sie die cpp-Implementierungsdatei mit der h-Datei in hpp zusammen.
include_directories(
${PCL_LIBRARIES}
include)
find_package(PCL 1.8 REQUIRED)
#生成链接库
add_library(${PROJECT_NAME}_core include/MROR.hpp)
#生成可执行文件
add_executable(MROR_exe main.cpp)
set_target_properties(${PROJECT_NAME}_core PROPERTIES LINKER_LANGUAGE CXX)
target_link_libraries(MROR_exe ${PCL_LIBRARIES} ${PROJECT_NAME}_core)
Das Ergebnis wurde erfolgreich gelöst