0

我的主目录通过网络文件系统在几台 linux 计算机之间共享。我想从我的主目录下的源代码安装一些 C C++ 库,并希望它们可以在所有 linux 计算机下使用。

我是否必须在不同计算机的 Home 的不同目录下安装不同版本的库?

假设我有一个调用这些库的 C C++ 程序,如何在 Makefile 中为不同的计算机指定不同的包含和链接文件和目录?是根据计算机的主机名确定目录吗?

是否可以为不同的Linux计算机组合不同版本的.a和.so文件以及库的头文件,以便所有计算机的包含和链接文件以及库的目录都相同,我不必须在我的 C C++ 程序的 Makefile 中为不同的计算机指定不同的目录?

谢谢并恭祝安康!

4

1 回答 1

0

这很容易也很常见。

C C++ 我假设你的意思是你有用 C 编译器编译的库,以及那些用 C++ 编译器编译的库。

如果您使用的编译器版本相同,则每个版本不需要不同的库。如果它们不同,可能仍然可以使用相同的 C 库,但 C++ 变得更加成问题。

如果文件在您的主目录中,那么在 Makefile 中最简单的操作是创建所有相对于 $HOME 的路径。此环境变量应在每个系统上正确设置。

如果您需要在不同的机器上引用不同的库,最直接的方法是将它们放在与主机名同名的目录中。像这样的东西:

CXXFLAGS=-I$(HOME)/app/$(HOST)/include

您可以通过提取 gcc 版本号并使用它来做一些更花哨的事情,但对于几台机器来说,这可能有点矫枉过正。

于 2009-08-14T12:39:27.557 回答