gpt4 book ai didi

c++ - 编译共享库时解析 ifdefs

转载 作者:行者123 更新时间:2023-11-28 07:48:29 25 4
gpt4 key购买 nike

我正在开发一个共享库,它有一些头文件,其中包含函数模板,例如:

#ifdef somecompilerflag
#define FUNCTION functionA
#else
#define FUNCTION functionB
#endif

void FUNCTION( ... );

somecompilerflag 是在编译我的 库时定义的。但是,如果其他人想要链接到这个库,我不希望他们在包含这些头文件时必须选择我的编译器标志。有没有办法在编译库时解析这些#ifdefs,这样生成的头文件看起来像:

void functionA( ... );

最佳答案

如果您的目标是 Linux&co,有一个叫做“pkg-config”的东西,它是一个框架,用于为特定安装的库检索编译器和链接器设置。另一种选择是编写 sed 脚本将模板头文件转换为正确的版本以进行安装。我什至会在编译库之前这样做,因为这样您就可以确保在编译时使用相同的 header 并且它适合。

关于c++ - 编译共享库时解析 ifdefs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com