问题内容: 是否有可能编译项目在 32位 与和一对 64位 系统?可能是,但是我该怎么做呢? 当我以“无知”的方式尝试它时,没有设置任何参数/ flags / etc,只是设置在其中查找链接的库似乎忽略了它,而只查看名为 lib64的 子目录。 问题答案:
问题内容: 如何在gcc中静态链接共享库函数? 问题答案: 参考: http://www.linuxquestions.org/questions/linux-newbie-8/forcing-static- linking-of-shared- libraries-696714/ http://linux.derkeiler.com/Newsgroups/comp.os.linux.develo
问题内容: 当我使用gcc编译非常简单的源文件时,不必指定标准包含文件(例如stdio或stdlib)的路径。 GCC如何知道如何找到这些文件? 它内部是否具有硬连线的路径,还是会从其他OS组件获取路径? 问题答案: 为了弄清楚/ 所使用的默认路径及其优先级,您需要检查以下命令的输出: 对于 C : 对于 C ++ : 这归功于 Qt Creator团队 。
问题内容: 有人知道如何使用GCC将任何资源文件静态地直接编译到可执行文件或共享库文件中吗? 例如,我想要添加永不更改的图像文件(如果更改,则无论如何我都必须替换该文件),并且不希望它们位于文件系统中。 如果这是可能的(我认为是因为Windows的Visual C ++也可以这样做),如何加载存储在自己的二进制文件中的文件?可执行文件会自行解析,查找文件并从中提取数据吗? 也许我还没有看到GCC的
问题内容: 我希望gcc 除了通常的include目录之外,还包含来自的文件,但似乎没有类似物。 我知道我可以在编译时(或在makefile中)在命令行中添加include目录,但是我真的想在这里采用通用方法,例如在库中。 问题答案: 尝试设置(对于C头文件)或(对于C ++头文件)。 正如Ciro所述,它将为C和C ++(以及任何其他语言)设置路径。 在GCC文档中有更多详细信息。
问题内容: 我们在专有的宏(如宏)中使用堆栈跟踪来捕获开发人员的错误-发现错误时,将打印堆栈跟踪。 我发现gcc的对/ 方法不足: 名称混乱 没有行信息 第一个问题可以通过abi :: __ cxa_demangle 解决。 但是第二个问题更加棘手。我找到了backtrace_symbols()的替代品。这比gcc的backtrace_symbols()更好,因为它可以检索行号(如果使用- g编译
问题内容: 我正在运行Ubuntu 11.04,Python 2.7.1,并想安装Pyaudio。所以我跑了 在终端中,并退出并显示以下错误消息, 我不确定是将其发布在askubuntu.com还是在stackoveflow中发布,但是无论如何,它都在stackoverflow中。另外我用谷歌搜索了一下这个问题,发现通过安装python- dev已经解决了一些问题。我已经安装了python-dev
问题内容: 我正在尝试使用gcc从Ubuntu上的编译简单的C示例。我必须用作gcc的参数以包含所需的库吗? 问题答案: 如果您使用,等获取库(相对于从源构建库),则仅安装软件包还是 _也_安装了获取头文件?Linux软件包通常将运行时库与编译时标头分开。这样,只需要库来满足动态链接的人就不必安装不需要的标头。但是,由于您要进行开发,因此需要这些标头,因此也需要该包。
问题内容: 我正在尝试为Linux动态库(.so文件)创建一个hello world项目。所以我有一个文件hello.c: 如何在命令行中使用gcc 创建导出的.so文件? 问题答案: 要生成共享库,您首先需要使用(位置无关代码)标志编译C代码。 这将生成一个目标文件(.o),现在您将其创建并创建.so文件: 编辑 :来自评论的建议: 您可以使用
问题内容: 我正在尝试以编程方式找到Linux上的路径,据我所知,实际上这意味着找到GCC认为的路径。(这是真的吗?Clang是如何做到的?) 根据http://gcc.gnu.org/onlinedocs/cpp/Search- Path.html的 介绍,某些组件涉及CPU架构和GCC版本;后者尤其棘手;我想可以通过运行和解析输出(或)获得它,但这似乎充其量是不佳的,最坏的是它是脆弱的。假设某
问题内容: 平台之间可能有所不同,但是 当我使用gcc编译并运行下面的代码时,每次在ubuntu 11.10中获得0。 为什么即使有calloc,malloc的行为也是如此? 难道就意味着即使您不希望有时将值初始化为0,也会有不必要的性能开销吗? 编辑:哦,我以前的示例不是初始化,而是碰巧使用“新鲜”块。 我恰恰在寻找的是为什么它在分配一个大块时将其初始化: 但是,感谢您指出进行分配时存在安全原因
问题内容: 如何做到这一点? 如果我想分析某些东西是如何编译的,我将如何获取发出的汇编代码? 问题答案: 使用该选项来gcc(或g ++)。 这将在helloworld.c上运行预处理器(cpp),执行初始编译,然后在运行汇编器之前停止。 默认情况下,这将输出一个文件。仍可以使用该选项设置输出文件。 当然,这只有在您拥有原始来源的情况下才有效。如果仅具有结果对象文件,则可以通过设置选项(或-d缩写
问题内容: 我使用的C ++库可以构建为共享库或静态库。该库使用一种工厂技术,该技术在程序启动时创建静态对象并注册静态对象。 只要使用共享库,此方法就可以正常工作。使用静态版本时,所有静态对象都不会包含在最终程序中(因为它们没有被直接引用),因此它们的功能不可用。 有没有一种方法可以在链接时强制gcc包含库中的所有静态对象? 该库是开源的,如果有帮助,我可以对其进行修改。 问题答案: 您可以使用,
问题内容: 我的意思是gcc是否可以将某些源代码版本的infor作为部分或类似内容插入到ELF二进制文件中。我不想更改我的源文件,但是在Makefile中使用gcc选项添加了一些信息。 问题答案: 您可以将版本信息发送到文本文件中,然后将该文本文件转换为目标文件,然后将其静态链接到可执行文件中。 第一步很简单,但是您必须编写一些代码:脚本或类似的东西,以您喜欢的纯文本文件格式书写版本信息。然后ve
问题内容: 嗨,我已经分解了一些程序(Linux),我写这些程序是为了更好地理解它的工作原理,并且我注意到main函数总是以以下内容开头: 所以我的问题是:为什么所有这些工作都完成了?我只了解以下用途: 其余的对我来说似乎没用… 问题答案: 我已经尝试了: