【问题标题】:How to "guess" which libraries are missing?如何“猜测”缺少哪些库?
【发布时间】:2012-06-19 22:01:10
【问题描述】:

这个问题纯属学术问题,所以下面只是一个例子;如果我在这一行前面添加两个斜杠

#pragma comment(lib, "../node-src/Release/node")

我会收到十几个链接器错误。好吧,不是很打,但至少有 2-3 行看起来像这样

1>test.obj : error LNK2001: unresolved external symbol "public: static class 
v8::Local<class v8::String> __cdecl v8::String::New(char const *,int)" 
(?New@String@v8@@SA?

现在我知道大多数要求都在规范中,但是有没有办法知道链接器真正缺少哪些文件?我的意思是,如果我要用常规包含替换那个 #pragma 指令,我应该采取什么步骤?

【问题讨论】:

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


    【解决方案1】:

    很简单,答案是没有简单的方法来判断链接器丢失了哪些文件。它所知道的只是它正在搜索的符号,而不是您需要包含的库文件。毕竟,你可以在任何你喜欢的库中定义这些符号,只要你告诉链接器在哪里搜索它。

    如果您有一堆潜在的库,您可以使用 Lib.exe as per this post on SO 之类的东西来搜索匹配的符号,然后尝试将链接器指向这些文件,但同样,无法让链接器为您找到这些信息..

    【讨论】:

    • 幸运的是,我问的是我应该采取哪些步骤,而不是链接器是否可以直接告诉我。
    • 我告诉你,你无法采取任何步骤——这通过链接器是不可能的。如果您有大量潜在的库文件,唯一可能会让您关闭的东西,您可以使用 lib.exe 之类的东西为您列出符号(请参阅我的编辑)。
    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多