【发布时间】:2017-08-16 09:03:47
【问题描述】:
我做了以下尝试在 macOS 上设置 C++ 的开发环境,但没有成功。
我从微软网站下载了 Visual Studio Code 并正确安装。
我安装了 ms-vscode.cpptools 和 mitaki28.vscode-clang。
我安装了 gdb。
以下是我收到的警告:
ld:警告:忽略文件 /Users/andy/Documents/VS Code C++/Hello World/.vscode/tasks.json,文件是为不受支持的文件格式构建的( 0x7B 0x0A 0x20 0x20 0x20 0x20 0x22 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x22 0x3A )不是被链接的架构(x86_64):/Users/andy/Documents/VS Code C++/Hello World/.vscode/tasks.json
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
编辑 1:我的平台是 macOS。
编辑 2:我在尝试构建最简单的 Hello World 项目时出现了问题,因此问题不可能是我的 C++ 代码。但我几乎是一个新手,所以我不知道 .json 的东西是什么。
编辑3:我认为问题可能出在launch.json文件中,所以这是我的文件:
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x64",
"program": "${file}.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"preLaunchTask": "g++",
"miDebuggerPath": "/usr/local/bin/gdb"
}
]
}
【问题讨论】:
-
0x7B 0x0A 0x20 0x20 0x20 0x20 0x22 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x22 0x3A -> something something 'version":'?这很奇怪。为什么将 JSON 文件视为一些二进制对象/可执行文件? -
什么操作系统/平台?
-
Ref @paxdiablo 看起来您已将 Json 文件指定为要链接的目标文件。查看构建文件。
-
你在这里确实没有提供足够的信息。操作系统?平台?你在哪一步得到错误?安装期间?安装什么?在构建期间?构建什么?
-
显示的代码看起来像 ASCII 代码。例如。
0x7B是{。考虑到这是一个ld错误,您尝试链接一个 json 文件。链接器需要目标文件并抱怨 json 文件不是可识别的目标文件(这是事实)。可能,您的项目设置是错误的。顺便提一句。恕我直言,这不是 Mac OS/X 特定的问题。我从未尝试过,但我很确定 Windows 上 VS 中的链接器也无法链接 json 文件。