XCode中链接库的顺序

时间:2015-02-06 15:58:05

标签: xcode preprocessor compile-time compiler-directives

在一个XCode项目中,我有一个库(libpng)和一个框架(opencv)。该框架已包含我的库的旧版本。

现在当我在“Link Binary With Libraies”中访问XCode时,如果我先将opencv和libpng放在第二位,我的代码将使用opencv中的内容,即旧版本。

我的问题:是否有可能在编译时知道我的项目将使用哪个版本的libpng?我想确切地知道,即使有人对我的图书馆链接的订单感到困惑,我仍然会使用正确的图书馆。

我已经尝试过用compile命令检查libpng的版本,如下所示:

#if PNG_LIBPNG_VER_MINOR !=6
  #error "Wrong libpng version. Required is 1.6.9."
#endif

但这不是一个解决方案,因为声明PNG_LIBPNG_VER_MINOR的标题总是正确的。只是在代码中可能会调用错误的方法。

谢谢!

1 个答案:

答案 0 :(得分:1)

  

是否有可能在编译时知道我的项目将使用哪个版本的libpng?

不是这种情况。翻译的参数与链接器的参数不同。无法保证。