gpt4 book ai didi

visual-studio-2015 - Visual Studio 无法识别 Makefile 项目中的 GCC 链接器错误

转载 作者:行者123 更新时间:2023-12-04 21:37:57 25 4
gpt4 key购买 nike

我们有一个交叉编译的 Visual Studio Makefile 项目。我们已经不得不引入 solution similar to this让它识别编译器错误。 IE。我们引入了一个 Perl 脚本来解析 GCC 的输出并将其转换为 Visual Studio 可以理解的形式。如果我们声明:

int succ = thisRandomFunction(userPointer, 1, 1);

没有 thisRandomFunction 的定义然后我们会得到链接器错误:
1>  ./program.a(taskqueue.o): In function `TaskQueueAdd': 1> 
D:\Git\program\taskqueue.c(94,1) : undefined reference to `thisRandomFunction' 1>
collect2: ld returned 1 exit status 1> make: *** [program.exe] Error 1

但 Visual Studio 实际上并未将其识别为错误。具有相同问题的 Visual Studio C++ 控制台程序出现链接器错误:
1>  TestUndefinedReference.cpp
1>TestUndefinedReference.obj : error LNK2019: unresolved external symbol "int __cdecl something(int)" (?something@@YAHH@Z) referenced in function _main
1>D:\Projects\New folder\TestUndefinedReference\Debug\TestUndefinedReference.exe : fatal error LNK1120: 1 unresolved externals

通过使用此转换器:
sub parseLinkerError
{
my $str = $_[0];
my $find = "undefined reference to";
my $replace = "error LNK2019: unresolved external symbol";
$str =~ s/$find/$replace/g;
return $str
}

我们可以这样转换:
1>  d:\Git\program/taskqueue.c:94: undefined reference to `thisRandomFunction'

进入这个
1>  D:/Git/eV+/program/taskqueue.c(94,1) error LNK2019: unresolved external symbol `thisRandomFunction'

但这还不足以欺骗 Visual Studio 链接器错误解释器。 看到链接器错误的最低要求是什么? 是否有任何解决方案可以在不直接解析文本的情况下工作?

最佳答案

根据 the documentation ...

输出的格式应该是:

{filename (line# [, column#]) | toolname} : 
[any text] {error | warning} code####: localizable string

在哪里:
  • {a | b} 是 a 或 b 的选择。
  • [ccc] 是一个可选的字符串或参数。

  • 例如:
    C:\sourcefile.cpp(134) : error C2143: syntax error : missing ';' before '}'
    LINK : fatal error LNK1104: cannot open file 'somelib.lib'

    您的样本失败,因为它缺少必需的冒号
    D:/Git/eV+/program/taskqueue.c(94,1) error LNK2019: unresolved external symbol `thisRandomFunction'
    ^

    关于visual-studio-2015 - Visual Studio 无法识别 Makefile 项目中的 GCC 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33572091/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com