2015-02-06 73 views
1

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

现在,当我在“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声明总是正确的标头中的解决方案。只是在代码中可能会调用错误的方法。

谢谢!

回答

1

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

不在这种情况下。翻译的参数与链接器的参数不同。没有保证。