安装linux屏幕后面有什么
installation? whats there behind screens of linux?
我会关注库,尽管它也可以是一个通用的应用程序安装。
当我们安装一个库(比如C++)时,像我这样的新手用户可能会认为,当我们"安装"一个库时,所有的源代码都会被复制到某个地方,只设置了一些标志和路径变量,这样我们就可以在自己的代码中直接使用#include语句并开始使用它们。
但通过检查,我可以说,实际上,除了所谓的*.h头文件外,没有复制确切的源文件,而是复制了文件的预编译对象形式。(仅仅是因为,除了头文件,我无法在硬盘上找到所有的源文件)
我的问题:
-
当我们"安装"某个东西时,幕后的方法是什么。。在linux环境中,受影响的典型位置是什么。以及这些地点的典型重要性/用途。
-
"安装"一个库和通过"sudo-apt-get"将新应用程序安装到linux系统中有什么区别?
-
最后,如果我有一组作为库有用的自定义源文件,并想将它们发送到另一个系统,我将如何在那里"安装"我自己的库,就像上面一样。
只是澄清一下,我的主要兴趣是从你的回答和文献中了解典型安装(应用程序/库)的全貌,达到我可以交叉检查、学习和重新做的水平。
-
(问题已删除,问题解决了头文件和对象文件之间的差异) 这更多是一个通用编程的问题。头文件只是类/函数等的声明,它什么都不做。头文件所做的只是说"嘿,我存在,这就是我的样子。"也就是说,它只是稍后在实际代码中使用的签名的声明。目标代码只是编译和组装的代码,而不是链接的代码。这个图表很好地解释了我们通常称之为"编译"过程的步骤,但最好称为"编译、组装和链接过程"。简单地说,链接是引入所有必要的对象文件,包括系统所需的文件,以创建可使用的运行可执行文件。
-
(现在问题1) 仔细想想,除了创建和修改具有适当内容的必要文件之外,安装是什么?这就是安装,只需将新文件放置在适当的位置,然后在必要时修改配置文件。至于哪些"位置"通常会受到影响,您通常会看到放在
/bin
、/usr/bin
和/usr/local/bin
中的二进制文件;库通常被放置在CCD_ 4或CCD_。当然,这会因情况而异。我想你会在linux系统目录上找到这个页面,作为一本教育读物。不过,请记住,任何东西都可以放在任何地方,只要你告诉其他东西在哪里可以找到它,它仍然可以正常工作,这些目录只是因为它们保持了事物的组织,并允许对二进制文件等项目的位置进行假设。 -
(现在问题2) 唯一的区别是,apt-get通常通过安装您需要的项目并跟踪已安装的项目来让它更容易,而且它还允许轻松删除已安装的项。就实际安装而言,如果手动操作正确,则应该是相同的。像apt-get这样的软件包管理器只会让生活更轻松。
-
(现在问题3) 如果你想这样做,你可以创建自己的包,或者如果它不那么复杂,你可以只创建一个脚本,将文件移动到系统上的适当位置。无论你想做什么,只要你把物品放在需要的地方。如果你想自己创建一个包,这将是一次很棒的学习体验,网上有很多教程。只需了解您的linux风格使用的包系统,然后查找有关如何创建该类型包的教程。
因此,在我看来,安装过程的真正大局只是编译(如果必要),然后将必要的文件移动到系统上的适当位置,并在必要时修改系统上的现有文件:把你的垃圾放在那里,如果需要的话让系统知道它在那里。
- 在 c/c++ 中打开 PhysicalDrive 的句柄并写入 MBR 的 linux 等效是什么?
- 关于这个在 Linux 上使用 gcc 编译的程序中的 vtable,nm 告诉我什么?
- 什么是"MFC Dialog Extension"?(Windows/C++ 新手 - Linux 背景)
- 我可以为这些特定函数使用什么C++标头?Linux
- 如果我在 Linux 上更改C++动态共享库,而我的可执行程序在其上使用,会发生什么
- Linux和macOS中的WinAPI等效于什么?
- GCC 编译器对类型转换有什么作用?为什么 mac 和 Linux 上的输出不同
- 什么是最好的(即快速和小)是在GCC linux上atomic_fetch_ptr和atomic_set_ptr
- 什么是 gcc Linux x86-64 C++中的有效指针
- 在Linux上构建具有链接时代码生成功能的静态库的正确方法是什么
- 在 Linux C++ 中,HANDLE 的数据类型可能是什么
- 在Linux上编写OpenGL 4.X应用程序的常用库是什么?
- ./lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a 的用法是什么
- 计算"copying a binary file in c++ on linux"消耗时间的最佳方法是什么?
- 在 Ubuntu Linux 中查找 C/C++ 源代码的最佳工具是什么?
- "port" Visual Studio C++项目以在 Linux 上编译的最简单方法是什么?
- ``pollout''Linux函数中的“ Pollout”事件是什么意思
- Linux 中对应的库是什么,就像 Visual Studio 中的 /MTd 一样?
- 安装linux屏幕后面有什么
- 什么是 Linux 实用程序来破坏C++符号名称