none
Additional Library Directories & Additional Dependencies RRS feed

  • 问题

  • 请问Additional Library Directories是不是用于向编译器输入在同一目录下的诸多文件项目,
    而Additional Dependencies是不是用于向编译器输入在不同目录下的不同项目呢?

    换句话说,如果xxx.dll是在XXXLIB目录下,我将XXXLIB添加到Additional Library Directories,xxx.dll添加到Additional Dependencies,这样的话连接器就会将xxx.dll连接两次吗?

    2010年5月5日 7:51

全部回复

  • 不会,是有一个顺序的.当编译器搜索到了指定函数符号就不会继续搜索了
    0xBAADF00D
    2010年5月5日 13:22
    版主
  • 不会,是有一个顺序的.当编译器搜索到了指定函数符号就不会继续搜索了
    0xBAADF00D


    也就是说只会连接一次对吧?

    另外,请问Additional Library Directories是不是用于向编译器输入在同一目录下的诸多文件项目,而Additional Dependencies是不是用于向编译器输入在不同目录下的不同项目呢?

    2010年5月6日 1:21
  • Additional Library Directories是用来添加链接器查找需要连接的文件的路径的。例如你的lib可能放到了工程以外的其他路径,则需要用该方式指定。需要注意的是并不是编译器需要Additional Library Directories。Additional Dependencies是同一个solution下的工程之间的相互依赖关系。但是这种依赖关系只被VSIDE识别。其他的编译工具不保证可以正常识别这种依赖。
    麻烦把正确答案设为解答。
    2010年5月6日 1:53
    版主
  • 不会连接两次


    欢迎光临我的个人网站:http://www.joyvc.cn,本网站提供[IM即时通信|棋牌游戏|网游开发|UI编程|网络通讯|组件开发|图像多媒体|数据库]方面的VC/C++/C技术文章、源代码和教程资料
    2010年5月6日 7:19
    版主
  • Additional Library Directories是用来添加链接器查找需要连接的文件的路径的。例如你的lib可能放到了工程以外的其他路径,则需要用该方式指定。需要注意的是并不是编译器需要Additional Library Directories。Additional Dependencies是同一个solution下的工程之间的相互依赖关系。但是这种依赖关系只被VSIDE识别。其他的编译工具不保证可以正常识别这种依赖。
    麻烦把正确答案设为解答。


    但是我现在看的这个示例程序里Additional Dependencies的值为$(SM_API_LIB_NAME) smftcpp.lib $(NOINHERIT)

    (SM_API_LIB_NAME)是系统环境变量,值为SM_API_DLL_NAME = smft31.dll
    经过搜索发现smft31.dll和smftcpp.lib都不是在这个solution里面的啊,他们都在其他盘符下面,这个也能代表您说的同一个solution下的工程之间的相互依赖关系?

    另外,为什么SM_API_DLL_NAME = smft31.dll这种没有设置过路径的系统环境变量,VS能够直接识别呢?

    2010年5月7日 1:09