如果我有這條線在make文件:\的Makefile -L命令
libpqxx_Libs = -L/share/home/cb -lpqxx-2.6.9 -lpq
這是否表明編譯器使用lpqxx-2.6.9.so共享對象文件或執行此indciate編譯器使用foler lpqxx-2.6.9中的所有.so?或者這是另一回事?
感謝您的幫助!
如果我有這條線在make文件:\的Makefile -L命令
libpqxx_Libs = -L/share/home/cb -lpqxx-2.6.9 -lpq
這是否表明編譯器使用lpqxx-2.6.9.so共享對象文件或執行此indciate編譯器使用foler lpqxx-2.6.9中的所有.so?或者這是另一回事?
感謝您的幫助!
在這種情況下-L
一種說法到連接,,增加了指定目錄下的目錄列表鏈接器將搜索必要的庫,例如您使用-l
指定的庫。
這不是一個makefile命令,即使它通常出現在C項目的makefile中。
-L
實際上並不是makefile
命令(正如您在問題的標題中所述)。
實際發生在這條線上的是賦值給變量libpqxx_Libs
- 沒有什麼更多也沒有。您必須通過$(libpqxx_Libs)
或${libpqxx_Libs}
在您的makefile
中搜索使用該變量的位置。這很可能是鏈接命令或包含鏈接的編譯命令中的一個參數。
在這方面,的-L
和-l
的含義中可以找到,例如,gcc man pages,其中指出
-llibrary
Use the library named library when linking.
The linker searches a standard list of directories for the li-
brary, which is actually a file named `liblibrary.a'. The linker
then uses this file as if it had been specified precisely by
name.
The directories searched include several standard system direc-
tories plus any that you specify with `-L'.