【问题标题】:Linking a lib library in C using Visual Studio 2013使用 Visual Studio 2013 在 C 中链接 lib 库
【发布时间】:2016-08-19 09:09:22
【问题描述】:

我将x.lib 文件添加到Visual Studio Project->Properties->Linker->Input->Additional Dependencies。我的构建成功但程序没有启动,因为启动后它写道:The program cant start because of x.dll is missing from your computer. 为什么它在寻找x.dll 而不是x.lib

【问题讨论】:

    标签: c visual-studio visual-studio-2013 linker


    【解决方案1】:

    动态链接

    x.lib用于编译,包含库函数的链接信息。编译时,编译器只是检查这些函数是否存在。为了简单地理解它,编译将提供在dll文件中定位这些函数的方法。
    x.dll 是动态链接库,其中包含这些函数的实现(可能不那么准确)。如果没有正确设置dll,程序将无法执行相应的功能。 dll 是实际可执行文件,而不是lib

    【讨论】:

    • 但是你的x.libx.dll的一个shim,让你跳过库的打开和获取每个函数的指针并调用这些函数,x.lib是一个静态库链接进入你的程序
    • @dvhh 我认为lib 有两种。一种包含dll文件信息和api函数的入口,另一种包含函数代码本身并在编译时直接将代码添加到程序中(就像你说的,静态链接库)。
    • 我正在回复@Мартин Бее,这可能是投票反对你的人(不幸的是,他删除了他的评论,但显然留下了反对票)
    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    相关资源
    最近更新 更多