linux编译程序时指定动态库路径问题
-L. 注意L后是个点,代表当前目录,所以当前目录被增加到所有-l参数的搜索范围里。 你关于so文件要不要用到的疑虑gcc不会考虑,但要总要能找到myhello这个你指定让它链接的东西吧补充:我又看一遍问题,你该不会还以为就算电脑里没有libmyhello.so程序应该也能编译通过啊这个意思吧?是的,可以搞出来个半成品。但是你告诉它了-lmyhello,-l可是实打实地要去找库文件的,不是随心所欲的。
■网友
目标文件编译完了只有相对地址,经过链接过程后才会分配实际的地址,这个过程不管是动静态库都是要参与啊,区别不过是静态库的各个段会根据链接脚本的配置集成到最后生成的ELF可执行文件中,面动态库不需要而已。所以-L指定了链接时需要的动态库的位置。编译时也许只需要一个名字(符号),但链接时可不是。
■网友
定位一个文件,用的不仅仅是名字,还有它所在的目录,假如你有两个一样名字的库在不同目录下,你又没指定哪个目录,链接器如何选择
推荐阅读
- 外交谈判|
- 既然c程序编译为机器码直接操作硬件,为啥不同操作系统下需要重新编译
- linux 应用层可以使用DMA进行数据传输吗
- 请教智能合约编译的问题
- 制约编译速度的主要原因是啥
- 目前整个嵌入式linux行业的发展前景咋样
- 有逼格高的XX卫士吗?
- 怎样用0和1写一段代码,具体怎样编译运行
- 怎样看待许多《编译原理》、《操作系统》教材里,没有编译器、操作系统demo(连一个模拟的,也没有)
- 嵌入式linux通过无线网卡ping后怎样进行无线数据传送有基于嵌入式linux应用程序吗谢谢
