繁体   English   中英

在静态库中使用宏进行函数声明和定义对符号导出的影响

[英]effect of using macros for function declaration and definition on symbol export within a static library

有谁知道在构建静态库时大量使用c-macros定义和声明函数是否会影响链接程序导出这些符号的能力?

我一直遇到这个问题,当我切换到常规函数声明和定义(不使用宏)时,几乎所有符号查找失败都几乎消失了。

这是在使用Xcode 5并针对iOS(arm + i386)的mac平台上发生的。

我打开/关闭哪个构建设置都没有关系。 看起来真正有所不同的是宏的使用和符号导出文件的使用。

我问,因为我现在遇到了一大堆代码,这些代码使用几个级别的宏进行函数定义和声明,并且除非绝对必要,否则我不想更改它。

该代码确实很复杂(但引人注目:)),最初是使用GNU make&siblings构建的。 因此,将其切换到基于XCode的版本并不是一件容易的事。 它与标头包括一起玩把戏。

关于这一点,我将不胜感激:静态库的宏和符号导出。

谢谢!

宏会在编译器启动之前展开,并且链接器直到所有目标文件完成后才会显示。 因此,要么您的宏没有生成您认为的代码,要么您发现了第一个实现时间转换的宏。 编辑:或者我完全不了解要点,可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM