【问题标题】:including additinal library paths with #ifdef in c++ visual studio 2010在 c++ Visual Studio 2010 中包括带有#ifdef 的附加库路径
【发布时间】:2013-02-22 14:55:05
【问题描述】:

我在不同位置安装了 32 位和 64 位运行时库。库文件的名称相同。现在要制作一个 32 位应用程序,我需要为 64 位指定 32 位库路径和类似的东西。有没有办法做类似的事情

  #ifdef defined (_WIN64)
    include 64bit library path
  #else
    include 32bit library path
  #endif

现在“#ifdef defined (_WIN64)”适用于 Windows 平台(我已经根据经验进行了检查)。从我的简单调查中,我了解到这可能不是确定目标应用程序是 64 位还是 32 位的最佳方法,但问题不在于这里。我想知道是否有办法让类似的条件语句适当地包含库路径。我正在使用 c++ Visual Studio 2010 在 Windows 中开发。在此先感谢

【问题讨论】:

  • 建议在 lib 的名称中包含 bitness。这允许库位于同一目录中,并且可以移出其目录并仍然保留信息。
  • 我无法更改库名称。这些库是第 3 方库,它们位于同名的两个不同目录中。我正在创建的库附加了位。

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


【解决方案1】:

我同意更改库名称的评论,但要回答问题:使用#pragma comment 指定/LIBPATH

#pragma comment(linker, "/LIBPATH:c:\\test\\")

请注意,如果您更改库名称,您可以这样做:

#ifdef _WIN64
#pragma comment(lib, "mylib64.lib")
#else
#pragma comment(lib, "mylib32.lib")
#endif

【讨论】:

  • 库路径有一些空间。有没有办法处理它?库路径如下:c:\Program Files\。我如何处理空间?
  • 我建议您使用相对路径并将库复制到不需要空格的地方。如果这不可行,请在其周围加上引号或使用 MSDOS 8.3 短名称。
猜你喜欢
  • 2018-03-12
  • 2011-09-19
  • 2011-04-06
  • 2012-11-02
  • 1970-01-01
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多