我正在構建一個簡單的C++程序,我想暫時用一個系統提供的共享庫和它的更新版本替代開發和測試。LD_LIBRARY_PATH vs LIBRARY_PATH
我嘗試設置LD_LIBRARY_PATH變量,但鏈接器(LD)與失敗:
在/ usr /斌/勞工處:找不到-lyaml-CPP
我預計,因爲工作根據ld的手冊頁:
鏈接器使用以下搜索 路徑定位所需的共享庫 :...對於天然I着墨, 的環境變量 「LD_LIBRARY_PATH」的內容...
然後我嘗試設置LIBRARY_PATH,而且工作。
根據GCC手冊:
LIBRARY_PATH的值是一個冒號分隔的列表 ,很像PATH。當 配置爲本地編譯器時,GCC 在搜索特殊鏈接程序 文件(如果它無法使用 GCC_EXEC_PREFIX找到它們)時嘗試搜索如此指定的目錄 。使用GCC 進行鏈接時, 也會使用這些目錄搜索 的普通庫中的-l選項(但指定以-L指定的目錄 )。
正如(GCC)手冊所示,LIBRARY_PATH的工作原理是因爲我與GCC鏈接。
但是...
- 因爲我用gcc爲什麼LD爲 被稱爲鏈接,作爲錯誤信息 建議?
- 有兩個變量服務相同的 的目的是什麼?有沒有其他 區別?
當然LD_LIBRARY_PATH的只對具備動態庫 – 2010-11-22 22:11:58
感覺我的觀點是,如果我是用LD用於連接(直接), 然後,根據LD手冊,LD_LIBRARY_PATH會 被用於搜索包含目錄需要鏈接到我的程序的庫 。我必須在這裏丟失一些東西。 – 2010-11-22 22:20:29