Questions tagged «linking»

3
我可以从封闭源应用程序链接到GPL库吗?
好的,在所有人大声疾呼重复问题之前,是的,我已经在这里看到过类似的几个问题。但是没有人回答这个问题。 如果我链接到GPL版本的库而不修改该库,是否需要发布源代码? 根据这个问题,答案是肯定的! 但是这个答案对我来说并不令人满意。答案基本上是说,如果不使代码开源,就无法以任何方式使用GPL代码。 但是,如果先前的说法是正确的,那么这将表明没有任何人或组织可以在Linux上发布任何专有软件。哪一定是错的。仅仅是因为为了使任何应用程序执行任何有用的操作,请打开文件,写入控制台,创建TCP连接,因此必须将应用程序链接到libcGPL版本。 所以我的问题是:如果GPL声明,如网站上所有先前的回答所述,链接到另一个GPL程序的程序必须是GPL本身,那么如何创建/发行/出售任何专有应用程序完全可以在Linux上运行?由于如上所述,该应用程序必须像GPL代码一样,才能在Linux上运行。 一个更实际的示例说,我链接到在非GPL应用程序中使用GPL编写的共享库,这会迫使非GPL应用程序成为GPL编写吗?更具体地说,如果我使用GPL库而不进行修改,然后将该库作为.so或分发.dll,这是否要求我的应用程序是开源的?
34 gpl  linking 

7
当仅包含.cpp文件时,一切正常时,为什么需要包含.h?
为什么我们需要同时包含.h和.cpp文件,而仅通过包含.cpp文件就可以使其起作用? 例如:创建一个file.h包含声明,然后创建一个file.cpp包含定义,并将两者都包含在中main.cpp。 或者:在中创建一个file.cpp包含声明/定义的声明(没有原型)main.cpp。 两者都为我工作。我看不出有什么区别。也许对编译和链接过程有一些了解可能会有所帮助。
18 c++  c  headers  linking  include 

3
我应该添加库的来源而不是链接到它们吗?
我是C ++的新手,所以我不确定如何最好地处理小的依赖项(例如,脚本语言或JSON / YAML / XML解析器)。 我应该创建单独的项目并将其链接为静态库,还是仅将.h / .cpp文件放入我的主项目有不利之处? 后者似乎容易得多,因为我花了几个小时来处理不兼容的库(构建库时编译器设置不同),但是我不想以错误的方式开始学习C ++。 如果最好将它们保留为单独的库,那么我该如何最好地保持编译标志同步,以便.lib / .a文件成功链接到我的应用程序? (我目前正在使用MSVC 2015,但目标是使用XCode / clang在Mac OS X和iOS上进行编译,因此我必须处理至少3种不同类型的库(Win x86,Mac x64,ARM) )
14 c++  linking 

1
为什么将代码段称为文本段?
包含代码的可执行文件.text部分有时称为部分。在分段存储器体系结构中,映射为代码的段有时称为文本段。Unix错误消息“文本文件正忙”(ETXTBSY)表示“此文件是正在执行的程序”。 是怎样的文字来意味可执行(机器)码? 理想的答案是:解释单词及其含义之间的联系;提供该术语的起源或至少历史的引文;给出一些社区使用它的想法。

2
Apollo-11:使用包含替代链接器
最近被数字化并转换为仓库,原始的Apollo 11指导计算机源代码已可以在Github上查看。 在MAIN.agc中,回购作者评论说他们 将巨大的整体源代码拆分为更小,更易于管理的块,即单独的源文件。 稍后,作者指出 可能会合理地问,为什么要通过包含的方式连接成千上万行源代码,而不是简单地单独组装源文件,然后将它们链接以形成可执行文件。答案是原始的开发团队没有链接器。 我知道链接器是什么,我理解它们的意思,但我从未听说过“通过包含的方式加入”(就ASM而言)。 这是什么意思?考虑到链接器在编程中起着很大的作用,我很好奇链接器被“包含方式”替代的含义以及它是如何工作的。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.