Visual Studio代码clang错误:链接器命令失败,Mac上的退出代码为1

时间:2018-06-17 21:49:45

标签: c++ linker visual-studio-code

我是编程新手,想尝试用于C ++开发的VS Code。我收到此错误,我无法在线找到解决方案:

clang:错误:链接器命令失败,退出代码为1(使用-v查看调用) 终端进程以退出代码终止:1

我有一个带有函数定义的cpp文件和一个带有类和声明的头文件,还有一个int主测试文件。

所以它是一个链接器问题。 VSC将我引导到c_cpp_properties.json,我不知道接下来要做什么来修复它。我也在Mac btw上。

任何人都可以帮我吗?

3 个答案:

答案 0 :(得分:1)

我想我找到了答案!

好像我一直在寻找错误的地方。你可以编辑task.json选项,它会询问“command”,然后添加你正在使用的每个翻译单元或cpp文件名。就像我的一样

“g ++ -g main.cpp func.cpp -o main”

这告诉编译器编译main.cpp和func.cpp文件,然后允许链接器完成它的工作。

答案 1 :(得分:1)

这将在当前文件夹中构建所有.cpp文件,这是vs代码tash.json "${fileDirname}/*.cpp"中的示例设置。请在这里找到doc

    "tasks": [
    {
        "type": "shell",
        "label": "clang++ build active file",
        "command": "/usr/bin/clang++",
        "args": [
            "-g",
            "${fileDirname}/*.cpp",
            "-o",
            "${fileDirname}/${fileBasenameNoExtension}"
        ],

答案 2 :(得分:0)

我知道这对其他人来说可能听起来很奇怪,但无论是 tasks.json 还是 c_cpp_properties.json 我都无法调和。 事实证明,由于 VSCode 内部的一些奇怪原因(我在 OSx 上),当我试图在我的 Person.h 文件的复制版本上进行编译时,链接器一直说:

clang: error: linker command failed with exit code 1 (use -v to see invocation)

我从 Person.h 复制并粘贴到新的 Person1.h 并更新了我的 max.cpp 和 Person.cpp 中的头文件,#include "Person1.h" 并且它起作用了。

// Wouldn't work with Person.h copied over, but did work once Person1.h was configured
g++ -g -I./Header ./Source/max.cpp ./Source/Person.cpp