静态库相互包含了怎么办?

发布于 2022-09-23 14:31:08 字数 84 浏览 23 评论 0

LD_LIBS = -L$(LIB_DIR) -laa -lbb

aa中用了bb函数, bb中用了aa中的函数. 这种相互包含的问题怎么解决?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

故事未完 2022-09-30 14:31:08

没问题的

蓝礼 2022-09-30 14:31:08

即便是间接递归都没问题.
比如以下测试:

  1. $ cat >1.c
  2. int func2(int);
  3. int func1(int i)
  4. {
  5.       if(i==1||i==0)return i;
  6.       return func2(i-1)+i;
  7. }
  8. $ cat >2.c
  9. int func1(int);
  10. int func2(int i)
  11. {
  12.       if(i==1||i==0)return i;
  13.         return func1(i-1)+i;
  14. }
  15. $ gcc -c 1.c
  16. $ gcc -c 2.c
  17. $ ar rcs lib1.a 1.o
  18. $ ar rcs lib2.a 2.o
  19. $ cat >test.c
  20. int func1(int);
  21. int func2(int);
  22. #include <stdio.h>
  23. int main()
  24. {
  25.         printf("%d\n",func1(10));
  26.         return 0;
  27. }
  28. $ gcc test.c -L. -l1 -l2
  29. $ ./a.out
  30. 55

复制代码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文