【问题标题】:VS2010 "Framework and References" vs "Linker > Input"VS2010“框架和参考”与“链接器>输入”
【发布时间】:2014-03-05 20:56:07
【问题描述】:

通过"Walkthrough: Creating and Using a Static Library (C++)" 时,他们通过

下的“参考”引用静态库
"Project Properties >  Common Properties > Framework and References > Add New Reference"

这只是链接同一解决方案文件中的库的一种便捷方式吗?您可以通过链接器选项指向库来执行相同的过程吗?

"Project Properties > Linker > General & Input

那么问题来了,链接过程有什么不同吗?

【问题讨论】:

    标签: c++ visual-studio-2010 visual-studio linker


    【解决方案1】:

    它与使用 Linker + Input 不同,除了更“可视化”和不易出错之外,它还会影响项目的构建顺序。这样可以确保在必要时在客户端项目之前构建静态库项目。

    VS 支持并行构建,如果项目之间没有依赖关系,它将同时启动多个构建。如果确实有一个并且依赖项目的构建速度有点慢,那么这可能会失败。还有另一种显式影响构建顺序的方法,Project + Project Dependencies。仅当 VS 无法自行解决时才需要。

    【讨论】:

    • 感谢您的回答,但我很清楚,参考资料确保某些库是在应用程序之前构建的,我宁愿问这两个概念之间的过程是否相同?那么引用和链接器输入做同样的事情吗?
    • 是的,在这两种情况下它只是将构建输出添加到链接器命令中,没什么特别的。
    【解决方案2】:

    VS2010“框架和参考”的一个巨大挫折:这是一个解决方案属性,即使它写在项目文件中(@ 987654321@)。只有在解决方案中添加的引用才会被解析。根据我的经验,当您需要在解决方案之间共享项目时,会开始弹出奇怪的链接错误。大多数时候缺少引用,这可能来自不同的配置(一个 64 位编译运行良好,说缺少 32 位依赖项 - 保证“wtf??”)。

    因此,如果您在解决方案 A 中有一个包含 3 个引用的项目,要在解决方案 B 中添加该项目,您还需要像在 A 上一样添加这 3 个引用的项目,将 3 个引用设置在 A 上并获取与链接到特定库相比,在您的解决方案中添加 3 个额外项目的所有开销。

    【讨论】:

    • 我同意当一个项目在多个解决方案中链接时,链接器 + 输入应该优先于“框架和参考”。我目前正在经历将 170 个项目解决方案一分为二的痛苦,我真希望没有人使用过“框架和参考”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    相关资源
    最近更新 更多