在一个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
的标题总是正确的。只是在代码中可能会调用错误的方法。
谢谢!
答案 0 :(得分:1)
是否有可能在编译时知道我的项目将使用哪个版本的libpng?
不是这种情况。翻译的参数与链接器的参数不同。无法保证。