Makefile-L命令

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实际上不是一

如果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
实际上不是一个
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'.