有没有什么方法可以将设计不佳的头文件编译为目标文件,而无需使用 gcc 更改文件扩展名或内容,或者我是否可以复制文件/编辑它? (这是因为我使用的是公共(public) SDK,即我没有编辑头文件的权限,并且因为在我的 Makefile 中使用 cp
似乎是一个重大黑客行为,而且也很耗时)
示例
main.c
#include <print.h>
#include <app.h>
int main(void) {
print("Starting app . . . ");
run();
}
app.h
#ifndef APP_H
#define APP_H
int runApp(void);
#endif
app.c
#include <print.h>
#include <app.h>
int runApp(void) {
print("This is my app!");
return 0
}
打印.h
#ifndef PRINT_H
#define PRINT_H
int print(char* str) {
printf(str);
return 0;
}
#endif
编译使用:
$ gcc -o main.o main.c
$ gcc -o app.o app.c
$ gcc -o main main.o app.o
SDK 示例程序使用单个目标文件(gcc -o main.o main.c 和 gcc -o main main.o
),但在我的情况下这会变得非常困惑。
最佳答案
创建
_print.h
int print(char* str);
打印.cpp
#include <print.h>
并将您的包含内容更改为“_print.h”
关于c - 如何处理头文件中的函数定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33332676/