c - Visual Studio Community 2017 cl 链接器不会链接 GTK3 库?
问题描述
我正在使用 GTK 作为 GUI 工具箱在 C 中编写代码。我通过 MSYS2 安装了 GTK3,并设法使用 GCC (TDM-Dragon) 编译和构建。
但是,最近我正在尝试使用 Visual Studio Community 2017 中包含的 cl 进行编译和链接(听说它更快更稳定)。有了这个,我很难构建一个应用程序。我松散地遵循本教程: http ://www.tarnyko.net/en/?q=node/22
我创建了一个 BAT 文件并从 VS 2017 命令提示符调用它:
set GINC_PATH="C:\msys64\mingw64\include"
set GLIB_PATH="C:\msys64\mingw64\lib"
cl gtk3test.c -I"%GINC_PATH%\gtk-3.0" -I"%GINC_PATH%\glib-2.0" -I"%GLIB_PATH%\glib-2.0\include" -I"%GINC_PATH%\pango-1.0" -I"%GINC_PATH%\cairo" -I"%GINC_PATH%\gdk-pixbuf-2.0" -I"%GINC_PATH%\atk-1.0" -Dinline= /link /LIBPATH:%GLIB_PATH% gtk-3.lib gdk-3.lib gobject-2.0.lib glib-2.0.lib
这编译好了,给了我 gtk3test.obj。但是,链接器返回以下错误:
链接:致命错误 LNK1181:无法打开输入文件 'gtk-3.lib'
我在这里做错了什么?如何使用 cl 链接 GTK3 应用程序?
谢谢大家!
许图
解决方案
请检查gtk-3.lib
您的文件夹路径中是否有[%GINC_PATH%]
。即使我在使用GTK+3.0时遇到了这个问题,包配置也没有提供正确的库参考。
在您的情况下, gtk 库就像gtk-win32-3.0.lib
在lib
文件夹中可用%GINC_PATH%\lib
。
即使在 Linker 中提供了所需的库引用,我仍然在我的 Visual Studio 应用程序中链接 GTK 库时遇到问题。
推荐阅读
- java - 递归问题 - 这个解决方案是否正确,是否有更简单的解决方案?
- java - 无法在 android 中使用带有 Intent 的已安装媒体应用程序播放音频文件
- node.js - 如何从 NodeJS 中的一个基本流(Git Packfile)中正确读取多个 zlib 流?
- azure - Azure 数据工厂:响应内容不是有效的 JObject
- arduino-uno - 通过 Internet 进行 Arduino 到 Arduino 数据传输
- jquery - .modal(dispose) 不是一个函数 boostrap 4.3
- php - `$stmt->execute()` 返回 False 但仍插入
- python - 如何在 Mac 上使用 VBA 运行 Python 脚本?
- windows - 如何从 Visual Studio 交叉工具命令提示符运行命令
- java - 每次将对象附加到 JSON 时。创造了一个新的最高价值