- 论坛徽章:
- 0
|
代码的目录结构为:
--main.c
|
src
|
|---funa.c
|---funa.h
|---funb.c
|---funb.h
- /**************
- * main.c *
- **************/
- #include "./src/funb.h"
- void main()
- {
- funb();
- }
- /**************
- * ./src/funb.c *
- **************/
- #include "funa.h"
- void funb()
- {
- funa();
- }
- /**************
- * ./src/funb.h *
- **************/
- #ifndef _FUNB_
- #define _FUNB_
- void funb();
- #endif
- /**************
- * ./src/funa.c *
- **************/
- #include <stdlib.h>
- void funa()
- {
- printf("funa\n");
- }
- /**************
- * ./src/funa.h *
- **************/
- #ifndef _FUNA_
- #define _FUNA_
- void funa();
- #endif
复制代码
我的想法是把funa.c编译为libfuna.so,然后再把funb.c和libfuna.so一起编译为libfunab.so
再和main.c编译为可执行文件main,步骤如下:
1) gcc -shared -o libfuna.so -c ./src/funa.c //把funa.c编译为libfuna.so;
2) gcc -shared -o libfunab.so -c ./src/funb.c -L. -lfuna //把funb.c和libfuna.so一起编译为libfunab.so
3) gcc -o main -c main.c -L. -lfunab
但是在2)生成的libfunab.so中并没有把libfuna.so的东西编译进来,不知这个思路能否行得通,各位高手帮忙看看 |
|