我正在使用 OpenCV 和 cmake(我都是新手)开发一个项目,并且不断获得对位于外部文件夹中的函数的未定义引用。
这适用于使用命令行界面的 Raspberry Pi。我的 CMakeLists.txt 文件如下所示:
cmake_minimum_required(VERSION 3.1)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
project(projectName)
find_package(OpenCV REQUIRED)
add_executable(${PROJECT_NAME} project.cpp supportFile.c supportFile2.c)
target_link_libraries(projectName ${OpenCV_LIBS} wiringPi)
当我编译cmake .
并make
完成但显示以下消息时:
CMakeFiles/.dir/projectName.cpp.o: In function `main':
projectName.cpp:(.text+0x4c): undefined reference to `initializeBoard()'
projectName.cpp:(.text+0x98): undefined reference to `setRS485ServoPosition(unsigned short, unsigned short, unsigned short)'
所有未定义的引用都是 supportFile.c、supportFile2.c 或 WiringPi 库中的函数调用。我不确定如何解决这个问题?
项目.cpp 文件:
#include "opencv2/highgui.hpp"
#include "opencv2/opencv.hpp"
#include "supportFile.h"
#include "supportFile2.h"
int main(int argc, char* argv[]) {
initializeBoard(); brake = 0; speed = 70; usmAngle = 5; value = 4;
setRS485ServoPosition(USM,0,usmAngle);
setRS485ServoPosition(CAMERASERVO,0,value);
...
initializeBoard() 位于 supportFile.h 文件中,setRS485ServoPosition() 函数位于 supportFile2.h 中。