Geo*_* C. 6 c++ opencv mingw visual-studio-code
大家好我想使用VSCode MinGW C++和OpenCV创建一个简单的opencv项目,但由于未知原因,我得到这个错误我该怎么办?
Visual studio 2017我可以在x64架构上运行main.cpp.我想在VSCode上运行的代码与我在Visual Studio 2017上运行的代码相同.
50 points如果有人证明以下情况,我会放弃:一个成功的构建.
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
Mat image;
image = imread("./22.png", IMREAD_COLOR); // Read the file
namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
if (!image.data) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl;
} else { // Image is good!
imshow("Display window", image); // Show our image inside it.
}
waitKey(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在我的VSCode编辑器中,我尝试使用tasks.json构建应用程序 CTRL + SHIFT + B
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "echo",
"type": "shell",
"command": "",
"args": [
"g++",
"-I", "C:\\vcpkg\\installed\\x64-windows\\include",
"-L", "C:\\vcpkg\\installed\\x64-windows\\lib",
"./src/main.cpp",
"-lopencv_core341",
"-lopencv_highgui341",
"-o app"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/src",
"C:/vcpkg/installed/x64-windows/include",
"C:/vcpkg/installed/x64-windows/lib"
],
"browse": {
"path": [
],
"limitSymbolsToIncludedHeaders": true
},
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17134.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.14.26428/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64",
"C_Cpp.intelliSenseEngine": "Tag Parser"
}
],
"version": 4
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个错误
> Executing task: g++ main.cpp -I C:/vcpkg/installed/x64-windows/include -L C:/vcpkg/installed/x64-windows/lib -lopencv_core341 -lopencv_highgui341 -o app <
C:\Users\giorg\AppData\Local\Temp\ccNFIHQq.o:main.cpp:(.text+0x51): undefined reference to `cv::imread(cv::String const&, int)'
C:\Users\giorg\AppData\Local\Temp\ccNFIHQq.o:main.cpp:(.text+0xa2): undefined reference to `cv::namedWindow(cv::String const&, int)'
C:\Users\giorg\AppData\Local\Temp\ccNFIHQq.o:main.cpp:(.text+0x119): undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'
C:\Users\giorg\AppData\Local\Temp\ccNFIHQq.o:main.cpp:(.text+0x139): undefined reference to `cv::waitKey(int)'
C:\Users\giorg\AppData\Local\Temp\ccNFIHQq.o:main.cpp:(.text$_ZN2cv6StringC1EPKc[__ZN2cv6StringC1EPKc]+0x42): undefined reference to `cv::String::allocate(unsigned int)'
C:\Users\giorg\AppData\Local\Temp\ccNFIHQq.o:main.cpp:(.text$_ZN2cv6StringD1Ev[__ZN2cv6StringD1Ev]+0xf): undefined reference to `cv::String::deallocate()'
C:\Users\giorg\AppData\Local\Temp\ccNFIHQq.o:main.cpp:(.text$_ZN2cv3MatD1Ev[__ZN2cv3MatD1Ev]+0x2d): undefined reference to `cv::fastFree(void*)'
C:\Users\giorg\AppData\Local\Temp\ccNFIHQq.o:main.cpp:(.text$_ZN2cv3Mat7releaseEv[__ZN2cv3Mat7releaseEv]+0x40): undefined reference to `cv::Mat::deallocate()'
C:\Users\giorg\AppData\Local\Temp\ccNFIHQq.o:main.cpp:(.text$_ZN2cv3MataSEOS0_[__ZN2cv3MataSEOS0_]+0xb4): undefined reference to `cv::fastFree(void*)'
collect2.exe: error: ld returned 1 exit status
The terminal process terminated with exit code: 1
Terminal will be reused by tasks, press any key to close it.
Run Code Online (Sandbox Code Playgroud)
我已经使用vcpkgusing这个命令生成了opencv库vcpkg install opencv,我认为这样做非常好.
在我vspkg使用Visual Studio 2017测试所有文件后生成所有文件并且可以工作,但我的主要目标是使用VSCode但是我没有任何线索为什么我得到错误.
告诉你我已经生成了文件.
小智 2
我尝试在 Windows 10 x64 上的 Visual Studio Code 中使用 MinGW-w64 g++ 成功构建和运行 OpenCV 3.4.1 的 C++ 程序。但我不知道这是否真的是“正确”的方法。 截屏
x86_64-8.1.0-posix-seh-rt_v6-rev0版本或更新版本http://mingw-w64.org/doku.php/start。OpenCV-3.4.1-x64分支或只需执行此命令git clone https://github.com/huihut/OpenCV-MinGW-Build.git -b OpenCV-3.4.1-x64C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin)C:\OpenCV-MinGW-Build\x64\mingw\bin)g++ test.cpp -IC:\OpenCV-MinGW-Build\include -LC:\OpenCV-MinGW-Build\x64\mingw\bin -llibopencv_calib3d341 -llibopencv_core341 -llibopencv_dnn341 -llibopencv_features2d341 -llibopencv_flann341 -llibopencv_highgui341 -llibopencv_imgcodecs341 -llibopencv_imgproc341 -llibopencv_ml341 -llibopencv_objdetect341 -llibopencv_photo341 -llibopencv_shape341 -llibopencv_stitching341 -llibopencv_superres341 -llibopencv_video341 -llibopencv_videoio341 -llibopencv_videostab341并将 更改test.cpp为您的 .cpp 文件名。Ctrl + commaVisual Studio Code,然后搜索并更改输入"code-runner.executorMap":内容,您可以将其应用于用户设置或仅应用于工作区设置。`"cpp:""cd $dir && g++ $fileName -o $fileNameWithoutExt -IC:/OpenCV-MinGW-Build/include -LC:/OpenCV-MinGW-Build/x64/mingw/bin -llibopencv_calib3d341 -llibopencv_core341 -llibopencv_dnn341 -llibopencv_features2d341 -llibopencv_flann341 -llibopencv_highgui341 -llibopencv_imgcodecs341 -llibopencv_imgproc341 -llibopencv_ml341 -llibopencv_objdetect341 -llibopencv_photo341 -llibopencv_shape341 -llibopencv_stitching341 -llibopencv_superres341 -llibopencv_video341 -llibopencv_videoio341 -llibopencv_videostab341 && $dir$fileNameWithoutExt",Ctrl+Alt+N“构建并运行”您的程序或按“播放”按钮即可。tasks.json我相信您也可以通过添加到使用 Visual Studio Code C/C++ 扩展调试的部分-IC:\OpenCV-MinGW-Build\include ..来应用此功能。args您还可以添加"C:/OpenCV-MinGW-Build/include"到c_cpp_properties.json包含路径以启用智能感知。如果您想使用其他版本的 OpenCV,只需将 g++ 参数的所有“341”部分替换为另一个版本,例如使用 OpenCV 3.3.1-llibopencv_calib3d331等。
编辑:我尝试编辑我的tasks.json并且launch.json它与 gdb 调试器一起使用。
tasks.json: https: //gist.github.com/agtbaskara/4a2ec9a3a9a963069e719c0477185321
launch.json:https://gist.github.com/agtbaskara/de04db8b6a31522dd1e62c43aa6e0f89
c_cpp_properties.json: https: //gist.github.com/agtbaskara/0eb773ac3085557baf7 BF20B031FB49E
| 归档时间: |
|
| 查看次数: |
2877 次 |
| 最近记录: |