删除Native android中的循环依赖

时间:2017-02-20 11:10:27

标签: android c shared-libraries native circular-dependency

我有一个文件A.c和另一个文件B.c。在A.c中有一个函数func1,它在B.c中定义,函数func2在B.c中定义,在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();
}

1 个答案:

答案 0 :(得分:-1)

我们可以通过使用静态库而不是共享库来实现这种链接。我用过它并且有效。