Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 包含/usr/lib子目录的通用生成文件_Linux_Makefile_Portability - Fatal编程技术网

Linux 包含/usr/lib子目录的通用生成文件

Linux 包含/usr/lib子目录的通用生成文件,linux,makefile,portability,Linux,Makefile,Portability,我的makefile中的一个规则依赖于-lmysqlclient。在我的Ubuntu 10.04 32位框中,libmysqlclient.so文件位于/usr/lib中。在CentOS 6.2 64位的另一个盒子上,文件位于/usr/lib64/mysql中。有没有比在makefile中添加以下“hack”更通用的方法 ifeq ($(shell uname -m), x86_64) vpath %.so /usr/lib64/mysql endif 也许您可以使用vpath行创建一个文件c

我的makefile中的一个规则依赖于-lmysqlclient。在我的Ubuntu 10.04 32位框中,libmysqlclient.so文件位于/usr/lib中。在CentOS 6.2 64位的另一个盒子上,文件位于/usr/lib64/mysql中。有没有比在makefile中添加以下“hack”更通用的方法

ifeq ($(shell uname -m), x86_64)
vpath %.so /usr/lib64/mysql
endif

也许您可以使用
vpath
行创建一个文件
config-x86_64.mk
,并在makefile中执行以下操作

-include config-$(shell uname -m).mk
如果文件不存在,
-include
将避免错误


在任何情况下,都应正确配置每个系统,以便链接器自动拾取系统库,而无需任何手动破解。

谢谢您的建议。关于正确的系统配置,我不认为我做了任何不寻常的事情:fresh CentOS安装(最小)和库都是通过简单的“yum install mysql-devel”安装的。为什么不
vpath%。所以/usr/lib usr/lib64/mysql
没有条件?@Beta:是的,显然也可以,谢谢!