【发布时间】:2016-11-10 11:24:21
【问题描述】:
根据this question,Visual Studio 无法解析和显示来自c 或c++ 中的GCC 的错误。我发现至少有一个例子,答案中的错误解析脚本没有找到链接器错误。
据我所知,发生了两个主要的链接器错误。
未解析的外部符号
由以下示例(以及其他示例)引起:
extern int i; // No definition of i
void nodef(); // No definition of a function
class A {
static int b; // No external definition (int A::b) of b (c++ only)
}
没有这样的文件或目录
如果在链接器运行之前删除了目标文件 (.o),则会发生错误。这通常是由git-cleanup 后跟常规构建(而不是重建)引起的,目前链接问题的答案未涵盖此错误情况。但这很容易解决。
为了完整覆盖此错误解析脚本,我需要注意 c/c++ 中的任何其他链接器错误(除了未解析的外部和没有此类文件)吗?
【问题讨论】:
-
您需要注意每一个可能的错误,不是吗?
-
GCC 似乎没有链接器错误列表,但这里是 MSVC 的列表:msdn.microsoft.com/en-us/library/fzaatbst.aspx
-
@immibis GNU 链接器不是 GCC 本身的一部分。
-
我认为创建这个脚本将在 Wine 的水平上反向,将 POSIX 转换为 Windows。从长远来看,将 VS 链接器与 GCC 一起使用可能会容易得多。 Example from MinGW page
标签: c++ c gcc visual-studio-2012 linker