首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

编译包含自定义文件的代码,该如何处理

2012-06-11 
编译包含自定义文件的代码hello.h头文件C/C++ codevoid msg(void)hello.c文件C/C++ code#include stdio.

编译包含自定义文件的代码
hello.h头文件

C/C++ code
void msg(void);


hello.c文件
C/C++ code
#include <stdio.h>#include <stdlib.h>#include "hello.h"void msg(void){  printf("%s\n","hello world!");}


test.c文件
C/C++ code
#include "hello.h"int main(void){  msg();  return 0;}


如果用gcc只编译test.c,会提示找不到msg()函数的定义(gcc test.c -o test.out),只能test.c和hello.c一起编译(gcc hello.c test.c -o test.out),但这样hello.h文件就失去其意义。我想像调用标准库函数一样,只加头文件即可把函数的实现链接进来,如何做呢?谢谢。


[解决办法]
hello.c做成动态库。。。。。。。。。。。。。
[解决办法]
gcc -c -o test.o test.c
gcc -c -o hello.o hello.c
gcc -o main test.o hello.o

[解决办法]
gcc -shared -fPIC hello.c -o libhh.so -g
gcc test.c -g -lhh -L. -Wl,-rpath=.
[解决办法]
头文件的作用都是有的,它只是函数的声明

函数的具体实现要么在其他源文件中,要么在库文件中

热点排行
Bad Request.