时间紧迫,草率做了个笔记,主要内容就是CMakeLists.txt和json的配置,其他的cpp由于涉及到个人项目,不便公开,见谅。
文件结构
bin:可执行文件更新:可执行文件放在build内
--------opencvTest
build:cmake出的文件 及 可执行文件 ///updated
include:头文件
--------include/calWear.hpp
--------include/match.hpp
--------include/mouse.hpp
src:源文件 source
--------src/calWear.cpp
--------src/CMakeLists.txt
--------src/match.cpp
--------src/mouse.cpp
CMakeLists.txt
HullDetect.cpp///这是我的项目文件
opencvTest.cpp///测试文件
templ.jpg///测试文件需要显示的图片
CMakeFiles.txt
根目录下CMakeLists.txt:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# 项目名称
PROJECT(opencvTest)
# 找opencv package----------记得添加这个
find_package(OpenCV REQUIRED)
set(CMAKE_C_COMPILER "gcc")
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_CXX_STANDARD 11)
# 根目录/代码路径
aux_source_directory(. DIR_MAIN)
# dubug 模式------------------这个非常重要,否则无法进入断点
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
# 添加子目录
include_directories("${PROJECT_SOURCE_DIR}/include")
add_subdirectory(src)
# 编译成可执行文件
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build)
add_executable(opencvTest opencvTest.cpp)
# 链接hellolib库,注意下面子目录src的CMakeLists
link_directories("${PROJECT_SOURCE_DIR}/lib")
target_link_libraries(opencvTest hellolib)
# 链接opencv库
target_link_libraries(opencvTest ${OpenCV_LIBS})
src目录下CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# generate lib
#设置生成lib文件的位置
## SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#代码路径
aux_source_directory(. DIR_SRC)
# 生成库
add_library(hellolib ${DIR_SRC})
# 链接opencv库
target_link_libraries(hellolib ${OpenCV_LIBS})
json
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
//"program": "${workspaceFolder}/{fileBasenameNoExtension}.o",
"program": "${workspaceFolder}/build/opencvTest",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
//"preLaunchTask": "build",
"preLaunchTask": "make",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
task.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"options": {
"cwd": "${workspaceRoot}/build"
},
"tasks": [
{
"label": "cmake",
"type": "shell",
"command": "cmake",
"args": [
"-G",
"Unix Makefiles",
"-DCMAKE_BUILD_TYPE=Debug",
".."
]
},
{
"label": "make",
"group": {
"kind": "build",
"isDefault": true
},
"type": "shell",
"command": "make",
"args": []
},
{
// "taskName": "echo",
"label": "build",
"type": "shell",
"command": "/usr/bin/g++",
"args":[
"-g", "${file}","-o","${fileBasenameNoExtension}.o",
"-I","/usr/local/include",
"-I","/usr/local/include/opencv",
"-I","/usr/local/include/opencv2",
"-L","/usr/local/lib",
"-l","opencv_core",
"-l","opencv_highgui",
"-l","opencv_imgproc",
"-l","opencv_imgcodecs",
"-l","opencv_video",
"-l","opencv_videoio"
],
}
]
}
c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/local/include",
"/usr/local/include/opencv",
"/usr/local/include/opencv2"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
settings.json//这个不知道有没有用,之前设置的,一起贴上来吧
{
"cmake.configureOnOpen": true,
"files.associations": {
"sstream": "cpp"
},
}
main
opencvTest.cpp
//这里面没加子文件,我在自己的项目文件中加的子文件
//但是需要一起编译,项目文件中有错也不能通过。
#include<opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
using namespace cv;
int main()
{
Mat img=imread("../templ.jpg");
cv::imshow("image",img);
cv::waitKey();
return 0;
}