gpt4 book ai didi

c++ - 在 Visual C++ 上包含间接寻址

转载 作者:行者123 更新时间:2023-11-30 01:33:02 24 4
gpt4 key购买 nike

假设我们有一个需要 Boost 来编译的应用程序。 Boost 是一个外部库,定期更新,我们的应用程序有多个二进制文件和多个版本(“多个”,如“让它们成长和繁殖”......不要问......),我们需要一种易于更新/维护的间接方式,以便为每个应用程序的版本链接正确的 Boost 版本。

例如:

  • MyApp 8.0 => 提升 1.34
  • MyApp 8.1 => 提升 1.35
  • MyApp 9.0 => 提升 1.35
  • MyApp 10.0 => 提升 1.37

在 Linux 文件系统上,我们将创建一个符号链接(symbolic link),重定向到正确的 boost 目录:

  • MyApp 8.0 => MyAppBoostLink_8.0 => Boost 1.34
  • MyApp 8.1 => MyAppBoostLink_8.1 => Boost 1.35
  • MyApp 9.0 => MyAppBoostLink_9.0 => Boost 1.35
  • MyApp 10.0 => MyAppBoostLink_10.0 => Boost 1.37

这将使我们能够轻松更新 MyApp 10.0,以便在可用时与 Boost 1.38 链接,只需替换符号链接(symbolic link)即可。

但是在 Windows 上,这不起作用(或者我错过了一些东西)。

Boost 本身似乎放弃了这个想法:使用 BJam,我记得看到警告说 BJam 正在复制 lib 文件,因为符号链接(symbolic link)在 WinNT 上不起作用。我尝试了另一种方法,因为我们使用的是 Visual C++,但是没有编译指示可以解决这个问题(我搜索了一个编译指示,为 header 包含和库链接添加默认搜索目录,但没有找到)。

我不敢相信我需要启动脚本来 check out VCPROJs 文件(Visual C++ XML 生成文件),更新 Boost 包含,然后检入修改,但我看不到其他解决方案直到 Windows 有可用的符号链接(symbolic link)(或者我发现了如何创建它们)。

有更好的主意吗?

编辑

当我们将编译器从 Visual C++ 2003 更新到 Visual C++ 2008 时,问题就消失了。显然,Visual C++ 2008 可以看到跨网络的符号链接(symbolic link)。

最佳答案

NTFS 文件系统上等效的 Windows 符号链接(symbolic link)称为联结:http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx

关于c++ - 在 Visual C++ 上包含间接寻址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/479668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com