none
如何在静态链接库中加入别的库文件 RRS feed

  • 问题

  • 我在VS2010中需要建立一个win32 Console Application静态链接库(.lib)文件其中需要别的库文件(比如需要daq.lib)

    我需要在哪个菜单下加入这个库文件才能通过编译和链接

    2012年6月25日 1:51

答案

  • 你好,

    加入静态链接库,有很多种方法:(由于我的Visual Studio是英文版,相应选项名是我自己翻译的,所以如和中文版有不同请见谅。)

    1. 添加VC++环境目录:

    在“工程->属性->属性配置-> VC++目录”中找到“库文件目录”,添加你的目录进去。在“工程->属性->属性配置->链接->输入”中找到“附加依赖库”,添加你的.lib文件名进去。即可。

    2. 添加当前程序环境目录方法1

    在“工程->属性->属性配置->链接->一般”中找到“附加库文件目录”,添加你的目录进去。在“工程->属性->属性配置->链接->输入”中找到“附加依赖库”,添加你的.lib文件名进去。即可。

    3. 添加当前程序环境目录方法2

    在“工程->属性->属性配置->链接->输入” 中找到“附加依赖库”,添加“你的目录”+“你的.lib文件名”进去即可。

    4. 强制添加库文件:

    右击你的工程节点,选择“添加->存在的事项”,然后到你的库文件存放的目录,找到你需要的库文件,添加即可。

    5. 代码添加:

    如同dowflyon所说的一样,但是你需要制定你的库文件目录,方式如上面几种。

    也可手动加入,如:#pragma coment(lib,"C:\\...\\debug\\*.lib")

    等等

    希望我的建议对你有帮助。

    此致


    Elegentin Xie [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月26日 9:50
    版主
  • 你好,

    欢迎回来。

    您的第一个问题我猜测是GT65XPCI.lib这个库文件已经放在您的应用程序同一个文件夹下了。所以编译器在搜索相关路径的时候找到了这个文件。

    第二个问题,我感觉可能是您指定引用GT65XPCI.lib文件的路径有些问题,导致找不到库文件。

    您也可以直接在project中用add existing item把库文件加进去,这样可以不考虑路径直接编译通过。

    此致


    Elegentin Xie [MSFT]
    MSDN Community Support | Feedback to us

    2012年9月7日 5:31
    版主

全部回复

  • #pragma coment(lib,"xxxx")

    …|▌'寔堅蔃の/「≯還寔╪.逞蔃﹖

    2012年6月25日 7:36
  • 你好,

    加入静态链接库,有很多种方法:(由于我的Visual Studio是英文版,相应选项名是我自己翻译的,所以如和中文版有不同请见谅。)

    1. 添加VC++环境目录:

    在“工程->属性->属性配置-> VC++目录”中找到“库文件目录”,添加你的目录进去。在“工程->属性->属性配置->链接->输入”中找到“附加依赖库”,添加你的.lib文件名进去。即可。

    2. 添加当前程序环境目录方法1

    在“工程->属性->属性配置->链接->一般”中找到“附加库文件目录”,添加你的目录进去。在“工程->属性->属性配置->链接->输入”中找到“附加依赖库”,添加你的.lib文件名进去。即可。

    3. 添加当前程序环境目录方法2

    在“工程->属性->属性配置->链接->输入” 中找到“附加依赖库”,添加“你的目录”+“你的.lib文件名”进去即可。

    4. 强制添加库文件:

    右击你的工程节点,选择“添加->存在的事项”,然后到你的库文件存放的目录,找到你需要的库文件,添加即可。

    5. 代码添加:

    如同dowflyon所说的一样,但是你需要制定你的库文件目录,方式如上面几种。

    也可手动加入,如:#pragma coment(lib,"C:\\...\\debug\\*.lib")

    等等

    希望我的建议对你有帮助。

    此致


    Elegentin Xie [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月26日 9:50
    版主
  • 谢谢您的解答,但是在您的回答的“工程->属性->属性配置->链接->一般”

    我发现没有"链接"这一项,而只有"librarian"这一项,我想你说的"链接"是不是就是这个

    "librarian"因为我在这个里面的"general"中有"additional Dependencies"

    和"additional library directories"这两项,分别可以加入附加"库的文件夹"和"库文件"

    我另外还想问一个问题:在vc6中如何找到相同的放"附加库"的地方

    非常感激您的帮忙

    2012年9月6日 1:01
  • 你好,

    欢迎回来。

    根据我理解您右击的工程应该是静态链接库,您的做法是正确的。我上文中提到的“Linker”是在一般工程配置属性中的。

    这里由于我没有Visual Studio 6.0,所以您的问题我没法给出准确的答案,但是只要找到“Additional Dependencies”就是附加库文件的地方。建议您使用高版本的Visual Studio

    此致

    Elegentin Xie [MSFT]
    MSDN Community Support | Feedback to us

    2012年9月6日 1:50
    版主
  • 谢谢您的回答
    2012年9月6日 4:33
  • 还有一个问题想请教,我在进行静态库的编译时由于需要有一个"GT65XPCI.lib"的库,现在的问题是

    我在没有加"GT65XPCI.lib"到工程文件的时候,编译能够通过,在把"GT65XPCI.lib"加入到工程文件后

    反而编译不能通过出现的错误是:"LINK : fatal error LNK1181: cannot open input file 'GT65XPCI'"

    我有两个问题 1:为什么明明在静态库中用到了GT65XPCI.lib中的函数,而在工程文件中又没有包含这个库

                           但是编译还是通过

                        2:在工程文件中加入"GT65XPCI.lib"后为什么反而编译不能通过

    谢谢你的帮忙

    2012年9月6日 5:52
  • 是否能尽快回答我上门的问题,我比较急的想解决这两个问题

    谢谢

    2012年9月6日 7:14
  • 额。。。可以开新帖子吗。。。


    Please not forget mark your answer, and unmark your disagreed point.


    • 已编辑 i1friend 2012年9月6日 10:21
    2012年9月6日 10:20
  • 你好,

    欢迎回来。

    您的第一个问题我猜测是GT65XPCI.lib这个库文件已经放在您的应用程序同一个文件夹下了。所以编译器在搜索相关路径的时候找到了这个文件。

    第二个问题,我感觉可能是您指定引用GT65XPCI.lib文件的路径有些问题,导致找不到库文件。

    您也可以直接在project中用add existing item把库文件加进去,这样可以不考虑路径直接编译通过。

    此致


    Elegentin Xie [MSFT]
    MSDN Community Support | Feedback to us

    2012年9月7日 5:31
    版主