Makefile-L命令
如果make文件中有这一行:\Makefile-L命令,makefile,shared-libraries,Makefile,Shared Libraries,如果make文件中有这一行:\ libpqxx_Libs = -L/share/home/cb -lpqxx-2.6.9 -lpq 这是否指示编译器使用lpqxx-2.6.9.so共享对象文件,还是指示编译器使用文件夹lpqxx-2.6.9中的所有.so?还是这完全是另外一回事 谢谢你的帮助 -L在此上下文中是链接器的一个参数,它将指定目录添加到链接器将搜索必要库的目录列表中,例如使用-L指定的库 它不是一个makefile命令,即使它通常出现在C项目的makefile中。这个-L实际上不是一
libpqxx_Libs = -L/share/home/cb -lpqxx-2.6.9 -lpq
这是否指示编译器使用lpqxx-2.6.9.so共享对象文件,还是指示编译器使用文件夹lpqxx-2.6.9中的所有.so?还是这完全是另外一回事
谢谢你的帮助
-L
在此上下文中是链接器的一个参数,它将指定目录添加到链接器将搜索必要库的目录列表中,例如使用-L
指定的库
它不是一个makefile命令,即使它通常出现在C项目的makefile中。这个
-L
实际上不是一个makefile
命令(正如您在问题标题中所述)
这一行中实际发生的是将一个值赋值给变量libpqxx_Libs
——不多也不少。您必须通过$(libpqxx_Libs)
或${libpqxx_Libs}
在生成文件中搜索该变量。这很可能是链接命令或包含链接的编译命令中的参数
在该上下文中,-L
和-L
的含义可以在中找到,例如,其中声明
-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'.