什麼裝況下lib 的 path 會失效? [論壇 - Ubuntu 程式設計]
正在瀏覽:
1 名遊客
什麼裝況下lib 的 path 會失效? |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員二級
![]() ![]() 註冊日期:
2008/5/5 8:18 所屬群組:
已註冊使用者 等級: 5
HP : 0 / 118
![]() |
請問一下, 我剛剛在編寫程式的時候發生了一個狀況
Makefile的內容如下 gcc -s $(CFLAGS) -m32 -O2 -Wall test.c -I./ -I../../Include -L../../Lib -lAPIs lpthread -o test 編譯後我也確認找得到 .so檔 但我不知道操作了麼system command, 編譯的時候可以過,但執行的時候確給我 cannot open shared object file: No such file or directory 我的目錄位置都沒有改變, 重開了也沒用 請問這是什麼原因?
2020/3/24 14:27
|
||||||||||
![]() |
回覆: 什麼裝況下lib 的 path 會失效? |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 179 / 899
![]() |
kikiyami 寫到: 今天在探索「obconf」原始碼,在找資料的時候, 看到了一篇參考文章「使用 gcc 自製 C/C++ 靜態、共享與動態載入函式庫教學 - G. T. Wang」, 聯想到了您之前在這篇討論所問到的問題, 於是根據您問到的,我自己的推測,模擬重現您遇到的狀況,寫了兩個範例,放在「GitHub」上,提供您做實驗參考。 另外也根據該篇文章,寫了相關的範例,一樣放在「GitHub」上。 猜測您遇到的狀況,可以參考該篇文章其中的主題「共享函式庫」。 其中一個範例「demo_c_build_case_001 / Demo / src」 執行
顯示
執行下面指令,就能正常運作了
================================================================================ 根據該篇文章提到,也可以使用「ldd」來測試 執行
顯示
執行
顯示
================================================================================ 該篇文章作者還有另一篇「GCC 編譯器基本使用教學與範例 - G. T. Wang」,一併紀錄連結,提供參考。 ================================================================================ 另外在建立上面提到的「GitHub / demo-build-c-case」專案的時候, 我記起來之前也有建立了兩個專案。 * demo-build-c * demo-lib-concept 找到之前的一篇討論回覆「#13 回覆: 如何安裝 StarUML-v2.8.0-64-bit.deb ?」,一併紀錄連結,提供參考。 也稍微整理了一下連結。 ================================================================================ 額外一提 根據我在「Xubuntu 20.04」上的測試 執行下面指令
顯示
注意到「/usr/lib/x86_64-linux-gnu」這個資料夾路徑。 執行「man ldconfig | grep FILES -A 10」 顯示 FILES /lib/ld.so Run-time linker/loader. /etc/ld.so.conf File containing a list of directories, one per line, in which to search for libraries. /etc/ld.so.cache File containing an ordered list of libraries found in the directories specified in /etc/ld.so.conf, as well as those found in the trusted directories. SEE ALSO ldd(1), ld.so(8) 可以找到「/etc/ld.so.conf」這個檔案。 執行下面指令,觀看「/etc/ld.so.conf」這個檔案的內容。
顯示
執行
顯示
執行
顯示
其中就可以看到「/usr/lib/x86_64-linux-gnu」這個資料夾路徑。 ================================================================================ 以上提供參考 報告完畢 ![]()
2020/5/11 22:40
|
||||||||||
![]() |
回覆: 什麼裝況下lib 的 path 會失效? |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員二級
![]() ![]() 註冊日期:
2008/5/5 8:18 所屬群組:
已註冊使用者 等級: 5
HP : 0 / 118
![]() |
解決了, 但是不知道是什麼方式解決的
2020/10/21 10:20
|
||||||||||
我的ubuntu,我的世界
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz NB x2 Intel(R) Core(TM) i5-7200U CPU @ 2.5GHz NB Intel(R) Core(TM) i5-8250U CPU @ 1.6GHz NB Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz x2 Intel(R) Pentium(R) CPU G4600 @ 3.60GHz Intel(R) Celeron(R) CPU G1620 @ 2.70GHz discard |
|||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.