My Home目录通过网络文件系统在多台Linux计算机之间共享。 我想在我的主目录下从源代码安装一些C C ++库,并希望它们可以在所有Linux计算机下使用。
我是否必须在我家的不同目录下为不同的计算机安装不同版本的库?
假设我有一个调用这些库的C C ++程序,如何在Makefile中为不同的计算机指定不同的包含和链接文件和目录?是根据计算机的主机名确定目录吗?
是否可以为不同的Linux计算机组合不同版本的.a和.so文件以及libary的头文件,以便所有计算机上的libary的包含和链接文件和目录都相同不必在我的C ++程序的Makefile中为不同的计算机指定不同的目录?
谢谢和问候!
答案 0 :(得分:0)
这很容易也很常见。
通过C C ++我假设您的意思是您使用C编译器编译库,以及使用C ++编译器编译的库。
如果您使用的编译器版本相同,则每个版本不需要不同的库。如果它们不同,仍然可以使用相同的C库,但C ++变得更有问题。
如果文件在您的主目录中,则Makefile中最简单的方法是创建相对于$ HOME的所有路径。应在每个系统上正确设置此环境变量。
如果需要在不同的机器上引用不同的库,最直接的方法是将它们放在与主机名同名的目录中。像这样:
CXXFLAGS=-I$(HOME)/app/$(HOST)/include
你可以通过提取gcc版本号并使用它来做一些更奇特的事情,但它对于几台机器来说可能有些过分。