我有一些类实现将用作库。
但是,我想在该库中包含一个 main
函数,并使用一个简单的驱动程序来测试我的类。因此,函数 main
只有在我将编译目标定义为可执行文件时才能编译。
这可以通过一些宏或类似的方法来完成吗?
我不想创建一个新项目或 Makefile,只是一个简单的 #ifdef
包装 main 函数将是这项工作的完美选择。
最佳答案
您可以使用 GCC 的 -D
选项定义宏。例如,您可以定义一个带有选项 -D_RELEASE
的宏 _RELEASE
并按如下方式换行:
#ifdef _RELEASE
// Release main
int main()
{
// ...
}
#else
// Another main
int main()
{
// ...
}
#endif
您可以通过将 -D_RELEASE
添加到您的编译行来编译一个 main 或另一个:
gcc main.c -D_RELEASE [other flags] # compile with release main
gcc main.c [other flags] # compile with other main
注意
这是main
函数的示例,但当然它可以为库中的任何函数实现。
关于c++ - GCC:检查是否编译为库或可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34900034/