【问题标题】:error LNK2019: unresolved external symbol linker can't find dll错误 LNK2019:无法解析的外部符号链接器找不到 dll
【发布时间】:2014-12-21 13:05:34
【问题描述】:

这是我的第一个问题,是的,在这个网站上已经被问过很多次了。我之前已经查看了之前的每一个问题,要么答案不是他们的,要么我已经厌倦了看到它。

我几天来一直在尝试在 Visual Studios 2010 中实现 GTK+ 项目,但一直被 main.obj 困扰:错误 LNK2019:未解析的外部符号 _gtk_init_abi_check 在函数 _main 中引用(以及其他一些函数) .我尝试了多个版本 3.x(32b, and 64) 和 2.x(32b,64b) 但目前我正在尝试使用 GTK 与 2 32 位,因为它是最受支持的分支。我已经链接了头文件、库文件,并且有一个环境路径变量 = PATH=$(ProjectDir)GTK\bin。

当我运行 Verbose 时,我会搜索库。 *{full path} 是实际路径。 1> 搜索{完整路径}\GTK\lib\gtk-win32-2.0.lib: 等等所有的 GTK 库,所以我猜测 .dll 没有被发现。 然而,正在发现其他依赖项 找到_mainCRTStartup 1> 加载MSVCRTD.lib(crtexe.obj)

根据我的阅读,路径变量应该允许找到 .dll。我把 dll 扔到了我认为链接器可以看到的任何地方。在 .cpp 旁边的资源文件中,在调试文件夹中,没有任何效果。

我当前的代码是

#include <gtk\gtk.h>
int main (int argc, char *argv[]){

    GtkWidget *window;

    gtk_init (&argc, &argv);
    /*
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "Hello World");
    gtk_widget_show (window);


    gtk_main (); 
    */
    return 0;
}

为什么链接器找不到函数? 我还应该注意,我尝试通过命令行直接链接库以及 pragma 注释,但没有成功。它是 GTK 项目,所以二进制文件应该被很好地编程。此外,我已经按照上一个线程中的建议进行了多次编译。那么我在链接器环境方面缺少什么?我应该注意,这是我第一次为项目设置 dll,所以这可能是一个非常愚蠢的错误。

提前致谢!

【问题讨论】:

  • 这是一个链接时问题,与缺少 DLL 无关。当您应该链接到调试版本(如果可用)时,您可能会链接到库的发布版本。

标签: c++ visual-studio-2010 dll gtk


【解决方案1】:

首先,确保在项目的属性页对话框中链接器文件夹的输入属性页的“附加依赖项”字段中列出了所需的库。

其次,通过“Project | Properties | Configuration Properties | General”文件夹为您的项目设置“No Common Language Runtime support”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2013-02-11
    • 2013-06-15
    相关资源
    最近更新 更多