XCode 中链接库的顺序
Order of linked libraries in XCode
在一个 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
的 header 始终是正确的。只是在代码中可能会调用错误的方法。
谢谢!
Is it possible to know at compile time which version of libpng my project will use?
在这种情况下不是。翻译的参数与链接器的不同。没有保证。
在一个 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
的 header 始终是正确的。只是在代码中可能会调用错误的方法。
谢谢!
Is it possible to know at compile time which version of libpng my project will use?
在这种情况下不是。翻译的参数与链接器的不同。没有保证。