为什么ta C++静态库项目有链接器设置吗?

发布于 2024-11-17 09:11:34 字数 97 浏览 2 评论 0原文

暴露我的无知:为什么静态库项目(在我的例子中是 Visual Studio)在项目属性页面中没有链接器设置?我认为“链接”对于图书馆来说是一件大事,但显然我从根本上误解了一些东西。

Revealing my ignorance: Why doesn't a static library project (in Visual Studio in my case) have linker settings in the project properties page? I thought "linking" was kind of a big deal re: libraries, but apparently I fundamentally misunderstand something.

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

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

发布评论

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

评论(3

妥活 2024-11-24 09:11:34

制作可执行文件分为三个步骤:

  1. 编译器将源代码转换为
    到目标文件。
  2. 一个
    归档员/图书管理员对对象进行分组
    文件一起放入库中(这
    步骤是可选的)。
  3. 链接器链接
    将目标文件和库一起创建
    一个完整的可执行文件。

库只是对象的集合,根据定义,这些对象尚未链接。链接器不用于创建库,因此它没有链接器选项是有道理的。

Making an executable is a three step process:

  1. A compiler transforms source code in
    to object files.
  2. An
    archiver/librarian groups the object
    files together into libraries (this
    step is optional).
  3. A linker links
    the object files and libraries together to create
    a complete executable.

A library is just a collection of objects, which by definition have not been linked yet. The linker is not used to create the library, so it makes sense that there would be no linker options for it.

孤独岁月 2024-11-24 09:11:34

链接是将目标文件组合成可执行文件(以及动态库,其格式与可执行文件类似)的过程。

静态库没有链接,它们是目标文件的简单档案。

当您在项目中引用静态库时,将从库中提取目标文件并与特定项目的文件链接在一起。

Linking is a process of combining object files into executables (and dynamic libraries, which have similar to executables format).

Static libraries aren't linked, they are simple archives of object files.

When you reference static library in your project, object files are extracted from library and linked together with files of particular project.

那请放手 2024-11-24 09:11:34

因为你没有链接它,纯粹而简单。

链接是将所有目标文件和库组合在一起以创建可执行文件的行为。在静态库项目中,您不会创建可执行文件,而只是创建一个稍后将链接的库。

例如(这是 UNIX 而不是 Windows,但概念相似),您可以使用编译器 cc 将源文件转换为目标文件,并使用归档器 ar把它们变成一个图书馆。链接器(或链接编辑器)ld 不需要参与,直到您想要进入下一步并将您的库包含到可执行文件中。

Because you don't link it, pure and simple.

Linking is the act of pulling together all your object files and libraries to create an executable. In a static library project you're not making an executable, you're just creating a library which will later be linked.

For example (and this is UNIX rather than Windows, but the concepts are similar), you would use the compiler cc to turn your source files into object files and the archiver ar to turn those into a library. The linker (or linkage editor) ld does not need to take part until you wanted to go to the next step and include your library into an executable.

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