如何处理头文件中的函数定义?

时间:2015-10-25 17:26:03

标签: c gcc compilation compiler-errors header-files

有没有办法可以将设计糟糕的头文件编译成目标文件,而无需使用gcc更改文件扩展名或内容,或者我来复制文件/编辑它? (这是因为我使用的是公共SDK,即我没有编辑头文件的权限,因为在我的Makefile中使用import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner in = new Scanner(System.in); int size; int line = 1; System.out.print(" #Enter size of square: "); size = in.nextInt(); while (line <= size) { System.out.println("*"); line = line + 1; } } } 看起来像是一个主要的黑客,而且也很耗时)

实施例

的main.c

cp

app.h

#include <print.h>
#include <app.h>

int main(void) {
    print("Starting app . . . ");
    run();
}

app.c

#ifndef APP_H
#define APP_H

int runApp(void);
#endif

print.h

#include <print.h>
#include <app.h>

int runApp(void) {
    print("This is my app!");
    return 0
}

使用以下编译:

#ifndef PRINT_H
#define PRINT_H

int print(char* str) {
    printf(str);
    return 0;
}

#endif

SDK示例程序使用单个目标文件($ gcc -o main.o main.c $ gcc -o app.o app.c $ gcc -o main main.o app.o ),但在我的情况下这会非常混乱。

1 个答案:

答案 0 :(得分:0)

创建

_print.h

int print(char* str);

print.cpp

#include <print.h>

并将您的包含更改为"_print.h"