我正在编译一个程序,并且正在获取lib2中使用的lib1中C文件中定义的常量变量的“未定义引用”。如果我编译为:
,我会收到错误clang myfile.c -L. -L../lib2dir -llib1 -llib2
我记得在我的Unix时代,有时候你必须再次添加一个库。所以我做了:
clang myfile.c -L. -L../lib2dir -llib1 -llib2 -llib1
和它相关联。为什么这仍然是必要的,或者我做错了什么,它不应该是必要的?
答案 0 :(得分:2)
库按照它们在命令行中的放置顺序进行链接。链接库时,只会从中解析缺失的符号。由于您提到的符号位于- name: restart mysql
service: "name={{ mysql_daemon }} state=restarted"
register: mysql_service
- name: pause after mysql restart
pause: "seconds=5"
when: mysql_service.changed
中,因此不会从lib2
解析,因为链接器尚不知道稍后将需要它。因此,将lib1
放在-llib2
前面。