Re: [問題] DLL搜尋路徑的問題

看板C_and_CPP作者 (我要加入劍道社!)時間15年前 (2009/05/24 00:37), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串2/4 (看更多)
※ 引述《photon3108 (John)》之銘言: : 我想要把執行檔放在 game 資料夾裡面,把 DLL 放在 game\dlls 裡面, : 但是我不知道如何在啟動執行檔時,自動去找 game\dlls 裡面的 dll 檔, : (1). 請問該怎麼做呢? 寫一個 shell script 或 batch file 把該目錄加入 LD_LIBRARY_PATH (Linux) 或 PATH (Windows) 環境變數中 然後再呼叫你寫的主程式 : (2). 請問有辦法把自動搜尋 ./dlls 寫在程式碼裡面嗎? 不行 因為 dynamic linking 是在你的程式碼開始執行前做的事 找不到 DLL 你的程式就無法執行 自然也沒辦法執行到「設定自動搜尋目錄」的地方 但還有另一個辦法 那就是用 dlopen / LoadLibrary 等函式 在執行時把 DLL 載入到記憶體中執行 使用這個方法你可以在程式中自行設定搜尋目錄 但因為你必須使用 function pointer 來呼叫函式 效率上會稍微差一點 : (3). Linux 下要用什麼方法自動搜尋 ./dlls 裡面的 so 檔呢? : 謝謝。 Linux 下就是去設定 LD_LIBRARY_PATH 這個環境變數 或是修改 /etc/ld.so.conf 這個檔案,把 dll 目錄加到裡面 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.150.29

05/24 10:11, , 1F
問一下第三點,可以在Makefile裡頭加library路徑嗎??
05/24 10:11, 1F

05/24 10:11, , 2F
我自己是感覺可以,但沒試過~~
05/24 10:11, 2F

05/24 11:12, , 3F
to bomb 有root權限好辦事 不過直接丟到/usr/lib或
05/24 11:12, 3F

05/24 11:12, , 4F
/usr/local/lib 之類的比較方便
05/24 11:12, 4F
文章代碼(AID): #1A62PaxK (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1A62PaxK (C_and_CPP)