在 XCode 项目中,我链接了一个库(libpng)和一个框架(opencv)。该框架已经包含我的库的旧版本。
现在,当我在“Link Binary With 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
声明的标头始终是正确的。只是在代码中可能会调用错误的方法。
谢谢!