Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 错误 ;3 ;错误LNK1104:无法打开文件';gtk-3.lib';_Visual Studio_Visual Studio 2012_Gtk_Gtk3 - Fatal编程技术网

Visual studio 错误 ;3 ;错误LNK1104:无法打开文件';gtk-3.lib';

Visual studio 错误 ;3 ;错误LNK1104:无法打开文件';gtk-3.lib';,visual-studio,visual-studio-2012,gtk,gtk3,Visual Studio,Visual Studio 2012,Gtk,Gtk3,我一直在尝试让GTK3.0正常工作,并遵循了这里的所有步骤 在需要让GTK工作的地方改为3.0,它似乎已经加载了编译所需的所有内容,但它给了我一个错误 Error 3 error LNK1104: cannot open file 'gtk-3.lib' 每当我尝试运行程序时。 我正在使用visual Studio 2012,但这是我发现的唯一一个让GTK在任何visual Studio上运行的地方。 以下是我正在使用的代码: #include <gtk-3.0\gtk\gtk

我一直在尝试让GTK3.0正常工作,并遵循了这里的所有步骤

在需要让GTK工作的地方改为3.0,它似乎已经加载了编译所需的所有内容,但它给了我一个错误

Error   3   error LNK1104: cannot open file 'gtk-3.lib'
每当我尝试运行程序时。 我正在使用visual Studio 2012,但这是我发现的唯一一个让GTK在任何visual Studio上运行的地方。 以下是我正在使用的代码:

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

    GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    //gtk_widget_get_preferred_size(window, 300, 200);

    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);   
    gtk_window_set_title(GTK_WINDOW(window), "GTK+ with VS2010");

    gtk_widget_show(window);     

    gtk_main();   
    return 0;
}
#包括
int main(int argc,char*argv[])
{
gtk_init(&argc,&argv);
GtkWidget*window=gtk_window_new(gtk_window_TOPLEVEL);
//gtk_widget_get_preferred_size(窗口,300200);
g_信号连接(g_对象(窗口),“销毁”,g_回调(gtk_主退出),NULL);
gtk_窗口设置标题(gtk_窗口(窗口),“gtk+带VS2010”);
gtk_widget_show(窗口);
gtk_main();
返回0;
}
我注释掉了gtk_widget_get_prefered_size调用,因为它与问题无关


有什么建议吗?我看了好几个地方,但都没有找到明确的答案。

您可能需要编辑项目设置或使用pragma注释链接gtk库:

#pragma comment(lib, "gtk-3")//if the libray is on your project's path


#define PATH "C:\\example\\"
#pragma comment(lib, PATH"gtk-3")//if the library is on PATH

gtk-3.lib
不存在。事实上,构建GTK 3应用程序不需要库参考。
pkg config
帮助程序似乎无法生成链接应用程序所需的正确链接器标志

只需将GTK包(\gtk3\lib)中的所有现有库添加到附加选项区域中即可。我的bundle(gtk+-bundle_3.6.4-20130921)的lib文件如下:

atk-1.0.lib cairo.lib fontconfig.lib gailtil.lib gdk-win32-3.0.lib gdk_pixbuf-2.0.lib gio-2.0.lib glib-2.0.lib gmodule-2.0.lib gobject-2.0.lib gthread-2.0.lib gtk-win32-3.0.lib pango-1.0.lib pangocairo-1.0.lib pangofi

(也可以通过命令提示符转到库路径,然后输入
dir*.lib/B


不要忘了在您开始时使用的标记中包含
/ENTRY:mainCRTStartup
标记。

没错,pkg config正在生成对不存在的lib的引用。我可以确认,在GTK lib文件夹中指定lib(与上面列出的相同)可以按预期工作。已确认在VS2010上使用3.6.4。有关其他编译器错误,请参阅以下答案:您知道在哪里可以获得适用于windows的gtk3捆绑包吗?