C++ GCC输出文件错误
我正在使用VisualStudio代码和ubuntu 16.04 LTS,并使用gcc版本5.5进行编译。每当我尝试使用ctrl+shift+b在visual studio代码中构建程序时,我都会得到屏幕截图中显示的错误,我能找到的唯一参考是tasks.json文件,但我也会包括c_cpp_属性文件,以防有帮助,简单地说,我不确定是什么原因导致输出文件说没有这样的文件或目录,我以为它应该创建输出文件,还是我必须提前创建?它还引用了一个usr/bin/ld目录,这个目录在我的文件系统中似乎不存在,这很奇怪。任何和所有的帮助都将不胜感激,如果需要更多的信息,请随时询问 c_cpp_properties.json:C++ GCC输出文件错误,c++,gcc,visual-studio-code,g++,ubuntu-16.04,C++,Gcc,Visual Studio Code,G++,Ubuntu 16.04,我正在使用VisualStudio代码和ubuntu 16.04 LTS,并使用gcc版本5.5进行编译。每当我尝试使用ctrl+shift+b在visual studio代码中构建程序时,我都会得到屏幕截图中显示的错误,我能找到的唯一参考是tasks.json文件,但我也会包括c_cpp_属性文件,以防有帮助,简单地说,我不确定是什么原因导致输出文件说没有这样的文件或目录,我以为它应该创建输出文件,还是我必须提前创建?它还引用了一个usr/bin/ld目录,这个目录在我的文件系统中似乎不存在,
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"opt/opencv/release/include",
"/home/linuxbrew/.linuxbrew/Cellar/nlohmann_json/3.1.2/include"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
tasks.json:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build app",
"type": "shell",
"command": "g++",
"args": [
"-g", "src/calibration.cpp",
"-o", "build/calibration.out",
"-I/home/linuxbrew/.linuxbrew/Cellar/nlohmann_json/3.1.2/include",
"-std=c++11",
"-L/usr/local/Cellar/opencv/3.4.1_5/lib",
"-lopencv_stitching",
"-lopencv_superres",
"-lopencv_videostab",
"-lopencv_aruco",
"-lopencv_bgsegm",
"-lopencv_bioinspired",
"-lopencv_ccalib",
"-lopencv_dnn_objdetect",
"-lopencv_dpm",
"-lopencv_face",
"-lopencv_photo",
"-lopencv_fuzzy",
"-lopencv_hfs",
"-lopencv_img_hash",
"-lopencv_line_descriptor",
"-lopencv_optflow",
"-lopencv_reg",
"-lopencv_rgbd",
"-lopencv_saliency",
"-lopencv_stereo",
"-lopencv_structured_light",
"-lopencv_phase_unwrapping",
"-lopencv_surface_matching",
"-lopencv_tracking",
"-lopencv_datasets",
"-lopencv_dnn",
"-lopencv_plot",
"-lopencv_xfeatures2d",
"-lopencv_shape",
"-lopencv_video",
"-lopencv_ml",
"-lopencv_ximgproc",
"-lopencv_calib3d",
"-lopencv_features2d",
"-lopencv_highgui",
"-lopencv_videoio",
"-lopencv_flann",
"-lopencv_xobjdetect",
"-lopencv_imgcodecs",
"-lopencv_objdetect",
"-lopencv_xphoto",
"-lopencv_imgproc",
"-lopencv_core"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
/usr/bin/ld
是gcc链接器。从您显示的错误来看,问题不是/usr/bin/ld
不存在,而是您要在其中创建可执行文件校准.out
的目录build
不存在
转到您的工作区目录,运行
mkdir build
或使用GUI创建文件夹。/usr/bin/ld
是gcc链接器。从您显示的错误来看,问题不是/usr/bin/ld
不存在,而是您要在其中创建可执行文件校准.out
的目录build
不存在
转到您的工作区目录,运行
mkdir build
或使用GUI创建文件夹。通过直接调用gcc构建文件对于单个文件几乎是可行的,但您将遇到类似这样的问题
我建议您研究一个合适的构建系统,有很多可供选择,包括:
- Make-Linux上的主要标准构建系统,但很难学习和掌握
- CMake-visual studio代码对CMake有一些支持
- Gyp-可以生成make文件
- Scons-类似python的构建脚本
您遇到的问题是,没有任何东西正在创建
build
目录。在运行构建任务之前,您需要自己创建它。通过直接调用gcc构建文件对于单个文件来说几乎是可行的,但是您会遇到类似这样的问题
我建议您研究一个合适的构建系统,有很多可供选择,包括:
- Make-Linux上的主要标准构建系统,但很难学习和掌握
- CMake-visual studio代码对CMake有一些支持
- Gyp-可以生成make文件
- Scons-类似python的构建脚本
您遇到的问题是,没有任何东西正在创建
build
目录。在运行构建任务之前,您需要自己创建它。尝试手动创建输出目录“build”。这很有效,但我将第一个回答的人标记为正确,因为他们也向我解释了一点,感谢您的贡献:)尝试手动创建输出目录“build”。这很有效,但是我将第一个回答的人标记为正确,因为他们也向我解释了一点,谢谢你的贡献:)工作空间是实际代码所在的src目录,还是c_cpp_properties.json和tasks.json所在的.vscode目录?我只是想说得非常清楚,这样我也知道将来会怎样,谢谢。很抱歉,一秒钟都没有拿到它。calibration.out
是可执行文件的名称build
是目录的名称。它写在json文件“-o”、“build/calibration.out”
中。workspace文件夹是vscode在项目中使用的根目录。工作空间是实际代码所在的src目录,还是位于.vscode中的c_cpp_properties.json和tasks.json所在的位置?我只是想说得非常清楚,这样我也知道将来会怎样,谢谢。很抱歉,一秒钟都没有拿到它。calibration.out
是可执行文件的名称build
是目录的名称。它写在json文件“-o”、“build/calibration.out”
中。workspace文件夹是vscode在项目中使用的根目录。