在XCode项目中,我具有linkend一个库(libpng)和一个框架(opencv)。该框架已经包含我的库的旧版本。
现在,当我进入“链接二进制文件与Libraies”中的XCode时,如果我将opencv首先放在,将libpng放在第二位,我的代码将使用opencv中的内容,即较旧的版本。
我的问题:是否可以在编译时知道我的项目将使用哪个版本的libpng?我想确定的是,即使有人弄乱了我的图书馆的链接顺序,我仍然会使用适当的图书馆。
我已经尝试过的是使用编译指令检查libpng的版本,如下所示:
#if PNG_LIBPNG_VER_MINOR !=6
#error "Wrong libpng version. Required is 1.6.9."
#endif
但这不是解决方案,因为在标头中PNG_LIBPNG_VER_MINOR
声明的头总是正确的。只是在代码中可能会调用错误的方法。
谢谢!
是否可以在编译时知道我的项目将使用哪个版本的libpng?
在这种情况下不行。翻译的参数不同于链接器的参数。没有保证。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句