pkg-config","--libs","--cflags","opencv4
",不起作用c_cpp_c_cpp_propertiesc_cpp_properties.json
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**",
"/opt/homebrew/Cellar/opencv/4.7.0/lib/**",
"/opt/homebrew/Cellar/opencv/4.7.0/include/opencv4/"
],
"defines": [],
"macFrameworkPath": [
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "macos-clang-arm64"
}
],
"version": 4
}
task.json
{
"version": "2.0.0",
"tasks": [
{
"label": "g++ compile",
"type": "shell",
"command": "g++",
"args": [
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.out",
"`pkg-config",
"--libs",
"--cflags",
"opencv4`",
"-W",
"-Wall",
"-g",
"-std=c++17",
],
"group": "build",
"presentation": {
"echo": true,
"reveal": "silent",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": false
},
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": "absolute",
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"type": "cppbuild",
"label": "C/C++: clang++ 生成活动文件",
"command": "/usr/bin/clang++",
"args": [
"-fcolor-diagnostics",
"-fansi-escape-codes",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
},
{
"type": "cppbuild",
"label": "C/C++: clang build active file",
"command": "/usr/bin/clang",
"args": [
"-fcolor-diagnostics",
"-fansi-escape-codes",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": "build",
"detail": "Task generated by Debugger."
}
]
}
我下载的opencv的路径
报错含义:未找到opencv2/opencv.hpp文件
分析:很有可能是opencv2的路径错误
主要排查方向:
1.项目属性配置是否正确
2.系统的环境变量是否配置正确
3.头文件的路径修改
mac在 VSCode 中配置 opencv
跟着操作
https://www.cnblogs.com/banluxinshou/p/16834819.html
看起来已经正确地设置了包含路径,但是在 task.json 中的 "pkg-config" 参数似乎没有起作用。
注意pkg-config 应该是一个单独的参数,因此在 task.json 中应该写为 "pkg-config opencv4"。
可以试试手动运行 pkg-config opencv4 --libs --cflags 命令来确保它正常工作。这应该会打印出 opencv4 库的所有相关的编译和链接选项,例如 "-I/usr/local/include/opencv4" 和 "-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui"。
如果这些选项不正确,可以手动将它们添加到 task.json 中的 "args" 参数中,例如 "-I/usr/local/include/opencv4" 和 "-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui"。
如果仍然不行,可以试试在命令行中直接编译代码:
g++ my_code.cpp -o my_code.out -I/usr/local/include/opencv4 -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui
如果这样能成功编译,那么可能是 vscode 的任务配置出了问题。可以试试清空 vscode 的缓存,然后重新打开 vscode 并再试试配置任务。
仅供参考,望采纳,谢谢。
VSCode 中配置 OpenCV 可能会出现 "opencv2/opencv.hpp file not found" 的错误。这通常是由于 OpenCV 库文件的路径没有正确设置导致的。要解决这个问题,需要在 VSCode 中设置 C++ 编译器的包含目录。
在 VSCode 的设置中,找到 "C/C++:Clang Command-Line Tools" 选项,并将 "Additional Include Directories" 设置为 OpenCV 库文件的路径。例如:
"C/C++: Clang Command-Line Tools": {
"Additional Include Directories": ["/usr/local/include/opencv4"]
}
然后保存设置,重新编译代码即可。如果你还是无法解决问题,建议检查 OpenCV 库文件是否已正确安装,并检查路径是否输入正确。
您好,根据您的配置文件,我看到您的 includePath 中加入了 opencv 库的路径,但是您的 task.json 中的编译命令中使用了 pkg-config 来获取库的路径和编译选项,这可能是导致出错的原因。pkg-config 可能无法正确识别 opencv4。
我建议您将 task.json 中的编译命令中的 "pkg-config", "--libs", "--cflags", "opencv4" 删除,并手动指定库路径和编译选项。例如:
"command": "g++",
"args": [
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.out",
"-I/opt/homebrew/Cellar/opencv/4.7.0/include/opencv4",
"-L/opt/homebrew/Cellar/opencv/4.7.0/lib",
"-lopencv_core",
"-lopencv_imgcodecs",
"-lopencv_highgui",
"-W",
"-Wall",
"-g",
"-std=c++17",
],
另外,我建议您在编译命令中加入 -Wl,-rpath,/opt/homebrew/Cellar/opencv/4.7.0/lib,这会将编译的可执行文件与 opencv 库进行连接,使得在执行程序时能够找到库。
最后,如果上述修改后还是无法解决问题,您可以尝试检查是否有其他配置文件或脚本影响了编译器的行为。您也可以尝试在命令行中直接运行编译命令,以排除环境变量等问题。
应该是路径配置错误
在 macOS 上使用 VSCode 配置 OpenCV 可能会有一些麻烦。这是因为 OpenCV 的头文件和库文件可能不在系统默认的搜索路径中。
建议尝试以下步骤来解决问题:
确保 OpenCV 安装在了正确的位置,通常是 /usr/local/ 。如果没有安装或安装在了其他位置,请重新安装 OpenCV
在 tasks.json 中设置环境变量。在"args"中加入
"-I/usr/local/Cellar/opencv/4.5.2/include/opencv4"
"-I/usr/local/Cellar/opencv/4.5.2/include"
"-L/usr/local/Cellar/opencv/4.5.2/lib"
"-lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_core"
编译器中配置opencv,在 c_cpp_properties.json 中配置
"includePath": [
"${workspaceFolder}/**",
"/usr/local/Cellar/opencv/4.5.2/include/opencv4",
"/usr/local/Cellar/opencv/4.5.2/include"
],
"defines": [],
"macFrameworkPath": [
"/usr/local/Cellar/opencv/4.5.2/lib"
],
上面的路径是我的本地的路径,可能不同于你的路径,请根据你的实际安装路径来配置。
如果仍然出现问题,可以考虑阅读 OpenCV 的文档以获取更多信息,或者在社区问答网站上寻求帮助。
这个问题通常是由于OpenCV没有正确安装或者没有正确配置导致的。解决方法如下:
确保OpenCV已经安装并且在系统路径中。可以使用命令行输入'pkg-config --cflags --libs opencv'来测试是否已经安装。如果没有安装,可以使用'brew install opencv'命令安装。
在vscode中配置编译器的头文件路径。这一步的具体方法是,在vscode的'设置'(setting)中找到'编译器扩展设置'(C/C++ compiler extension settings),然后在'头文件路径'(includePath)中加入OpenCV的头文件路径。
在vscode的'环境变量'(environment variables)中配置OpenCV的库文件路径。这一步的具体方法是,在vscode的'设置'(setting)中找到'编译器扩展设置'(C/C++ compiler extension settings),然后在'环境变量'(environmentVariables)中加入'LD_LIBRARY_PATH',值为OpenCV的库文件路径。
如果还是无法解决问题,建议检查一下OpenCV的安装是否完整,或者可以尝试重新安装OpenCV。