【问题标题】:Install C C++ library under HOME shared via Network File System在通过网络文件系统共享的 HOME 下安装 C C++ 库
【发布时间】:2009-08-14 12:31:05
【问题描述】:

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

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

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

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

感谢和问候!

【问题讨论】:

    标签: c++ c makefile nfs


    【解决方案1】:

    这很简单也很常见。

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

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

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

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

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

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

    【讨论】:

    • 谢谢!两台机器的 gcc 版本不同。第一个是 gcc/g++ 3.4.6 20060404 (Red Hat 3.4.6-10);第二个是 gcc/g++ (Ubuntu 4.3.2-1ubuntu12) 4.3.2。第一台机器是 CentOS release 4.7 (Final) 和 x86_64,第二台机器是 Ubuntu 8.10 和 x86_64。如果我必须将库安装在不同的目录中,如何在 Makefile 中为不同的机器指定它们?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多