【发布时间】:2017-02-20 11:10:27
【问题描述】:
我有一个文件 A.c 和另一个文件 B.c,在 A.c 中有一个函数 func1 在 B.c 中定义,在 B.c 中有一个函数 func2 在 A.c 中定义。现在,当我尝试使用 A.c 和 B.c 构建单独的 so 库时,编译器会在链接时引发循环依赖错误。 那么有什么办法可以将两个库链接在一起吗?或者我可以延迟链接,即 libA.so 在编译 libB.so 之前不会链接。
例如:-
文件 A.h :-
void func1();
文件A.c
void func1()
{
printf ("Hello A");
}
void other_function()
{
func2();
}
文件B.h
void func2();
文件B.c
void func2()
{
printf("Hello B");
}
void other_function ()
{
func1();
}
【问题讨论】:
-
你在头文件中使用声明吗?还是在 func2 中调用 func1 并且 func2 调用 func1?您能否提供一个简短的源代码示例,如下所述:stackoverflow.com/help/mcve
-
请检查。如果您有任何疑问,请告诉我@KamiKaze
-
尝试在 A.c 和 B.c 中同时包含 A.h 和 B.h。
-
看this的回答。
-
包含哪些内容?
标签: android c shared-libraries native circular-dependency