安装 C C++ 通过网络文件系统共享 HOME 下的库

发布于 2024-08-02 02:23:35 字数 372 浏览 3 评论 0原文

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

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

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

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

感谢致敬!

My Home directory is shared among several linux computers via Network File System.
I would like to install some C C++ library from source under my Home directory, and wish they can be used under all the linux computers.

Do I have to install different versions of the library under different directories of my Home for different computer?

Assuming I have a C C++ program that calls these libraries, how do I specify different include and link files and directories for different computer in Makefile? Is it to determine the directories based on the hostname of the computer?

Is it possible to combine the different versions of the .a and .so files and header files of the libary for different linux computers so that the include and link files and directories of the libary are the same for all the computers and I don't have to specify different directories for different computer in the Makefile of my C C++ program?

Thanks and regards!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萧瑟寒风 2024-08-09 02:23:35

这很简单,也很常见。

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

如果您使用的编译器版本相同,则不需要每个版本使用不同的库。 如果它们不同,仍然可以使用相同的 C 库,但 C++ 会出现更多问题。

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

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

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

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

This is easy and common.

By C C++ I assume you mean you have libraries compiled with a C compiler, and those compiled with a C++ compiler.

If the version of the compiler you are using is the same, then you do not need different libraries for each version. If they are different it may still be possible to use the same C libraries, but C++ becomes more problematic.

If the files are in your home directory, the easiest thing to do in your Makefile is make all of the paths relative to $HOME. This environment variable should be set correctly on each system.

If you need to reference different libraries on the different machines, the most straightforward way would be to put them in a directory with the same name as the hostname. Something like this:

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

You could do something more fancy by extracting the gcc version number and using that, but its probably overkill for just a couple of machines.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文