【发布时间】:2014-04-28 14:59:14
【问题描述】:
可能我在这里遗漏了一些东西,但这是我第一次在 Windows 上需要静态链接库,以便可执行文件不依赖于 dll。我使用 LIBPNG 来完成。
我是这样做的:
我添加了 libpng 头文件:C/C++ -> Additional Include Directories
将库目录添加到链接器:链接器 -> 常规 -> 其他图书馆目录
添加链接器附加依赖:链接器 -> 输入
编译exe ok。调用它时我得到:
“程序无法启动,因为您的文件中缺少 libpng16.dll 电脑。”
这意味着 libpng 尚未编译到可执行文件中。如果没有reference the whole pnglib project code into my executable project,我该如何解决?
【问题讨论】:
-
错误中的 "libpng16.dll" 表示这不是静态库,而是动态链接库。如果您只是将 dll 复制到与可执行文件相同的文件夹中,您可能会很好。否则,您需要确保库确实支持静态链接,然后链接到 正确的 .lib 文件。
-
@crashmstr 我不想这样做。我希望将 libpng 编译到最终程序中。
-
我编辑了我的评论以包含您需要确保的声明:1. libpng 支持静态链接和 2. 您链接到正确的 .lib,即静态库而不是“点”指向 dll。
-
@crashmstr 1. - 是我现在想要弄清楚的,但我还想确保我的 VS 设置正确。
标签: c++ visual-c++ visual-studio-2012 linker