gcc相关内容
测试以下code: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; 主要() { 为const char * yytext中=“0”; 常量浮动F =(浮点)ATOF(yytext中); 为size_t T = *((*为size_t)及F)。 的printf(“T应为0,但为%d \\ n”,T); } 与编译:
..
上周,我发布了Linux和Windows版本的应用程序。 和发布后,我们意识到,这些符号没有剥离,和我的经理认为(我不同意),这可能让用户了解我们的算法。 反正现在,我将不得不清理的符号和重新发布该应用程序。 我的问题, 什么是Linux中剥离符号的最佳方式? 什么是在Windows中剥离符号的最佳方式? 解决方案 通过在Windows上的Visual C ++(和其他Mic
..
我code。使用的printf 和 wprintf 功能在一起的时候就有问题了。如果规则字符串先打印出来,然后 wprintf 不起作用。如果我使用 wprintf 第一则的printf 不起作用。 的#include<&stdio.h中GT; #包括LT&;&wchar.h GT; #包括LT&;&stdlib.h中GT; #包括LT&;&locale.h文件GT;诠释的main() {
..
到目前为止,我已经得到尽可能: 的#define ADEFINE“23” 的#pragma消息(“ADEFINE”ADEFINE) 其中一期工程,但如果ADEFINE是不是一个字符串?的#define ADEFINE 23 的#pragma消息(“ADEFINE”ADEFINE) 原因: 警告:畸形“的#pragma消息”,忽视 在理想情况下,我想能够应付任何价值,包括不确定的
..
有关的OpenMP,当我的code为使用的功能的API中(例如,omp_get_thread_num()),而无需使用其指令(例如那些的#pragma OMP ...), 为什么直接指定libgomp.a到 海湾合作委员会,而不是使用-fopenmp 不工作,如 GCC的hello.c /usr/lib/gcc/i686-linux-gnu/4.4/libgomp.a -o打招呼
..
我有一些C源文件和我使用 GCC 。我基本上要编译所有的人创造一个单一的目标文件。当我尝试: GCC -c src1.c src2.c src3.c -o final.o 我得到: GCC:不能用-c指定-o或多个文件-S 如果我尝试: GCC -c src1.c src2.c src3.c 我得到三个不同的目标文件。我怎么能告诉 GCC 编译所有的文件返回一个单一的目标文件(我也
..
我在i386上运行的Linux:x86_64.I've写了件C code和我拆开它,以及读寄存器,了解程序组件是如何工作的。下面是我写我的C程序。 的#include<&unistd.h中GT; #包括LT&;&string.h中GT; #包括LT&;&stdio.h中GT;字符* string_in =“没有工作”;INT测试(字符*本){ 炭sum_buf [6]; 函
..
从文档的描述,他们似乎做同样的事情,只是“不是所有的系统”支持共享,“只有一些系统”支持符号(现在还不清楚,如果这些是同一套系统): -shared 产生,然后可以与其它对象链接的共享对象 形成一个可执行文件。并非所有的系统 支持此选项。对于predictable 结果,你还必须指定 同一组的选项被用来 产生code(-fpic,-fPIC或模型 子选项)当您指定此 选项
..
我使用的GNU工具链。我怎样才能在运行时,发现一个函数调用者的?例如函数B即()获取使用函数指针的许多功能调用。现在,每当B获得所谓的,我想打印的来电者的名字。我需要这个用于调试一定问题。 解决方案 如果你使用GNU,你可以使用的
..
Linux内核code使用“的声明-EX pression”和typeof运算扩展,使它只在GCC编译。 更多我想它,它越没有意义。 这违背了便携性和标准C的目的 (现在的linux内核code需要与支持GCC的扩展特定的编译器)。 是不是一个糟糕的设计选择,或在那里制作Linux内核code比与gcc特殊原因? 编辑:当我说这违背了便携性,我用它在不同的上下文中。我在想,由符合标准的C
..
问题 我测试一个简单的code,它计算曼德尔布罗分形。我已被被检查它根据在检查某点属于曼德尔布罗设置或不函数迭代次数性能。 令人惊讶的是,我加入-fPIC标志后得到的时间有很大的区别。从我读的开销通常是可以忽略的,我碰到的最高开销约为6%。我是30%左右。任何意见将是AP preciated! 我的项目的详细信息 我用的是-O3标志,GCC 4.7.2,Ubuntu的12.04.2,x
..
有关一些长期的错误,海湾合作委员会输出致密,有很多自动换行等。特别是当错误是微妙的,它可以带我10-30秒眯眼用我的眼睛来分析它。 我带到这个粘贴在一个开放的code-编辑器窗口来了解一些基本的语法高亮,使与正则表达式的格式化。 有没有人发明了一种更加自动化的方法? 解决方案 我发现 colorgcc 是无价的。通过引入着色,它变得更容易精神分析的gcc错误信息文本,特别是当模板都有涉
..
我运行Ubuntu 12.04和我目前正在对涉及C,OpenGL的,一个茶壶和输入法的一个项目。 当我决定方向键输入的问题开始。我检查关键看codeS的方向键,但所有的箭头返回0。我抬头一看怎么得到这个工作,我发现CONIO.H。不幸的是,这是一种古老的DOS头,是不是可用于Linux。然后我发现了一个名为ncurses的替代品。 安装必要的库,通过密切关注构建指令后,我在main.c中包含(
..
有什么办法,总之把一个属性上的每个函数原型,让GCC知道C函数不能传播的例外,即这里面的extern“C”应 __ __属性((抛出异常))?理想的情况是一个 -f 风格的命令行选项。 解决方案 您可以随时使用 -fno-例外这将确保C ++编译器不产生异常传播code。
..
你怎么能列出程序中的所有功能,使用gdb? 解决方案 信息功能打印所有定义的函数和数据类型。请参见 16检查符号表。
..
是什么这两种类型的文件之间的差异。我看到我的C ++可执行文件的施工过程中针对这两种类型的应用程序的链接。 如何建立.a文件?链接,引用和特别的例子,是高度AP preciated。 解决方案 的.o 文件的对象。他们是编译器和输入到链接器/库的输出。 .A 文件档案。它们是对象或静态库的基团,并且也输入到连接体。 其他内容 我没有注意到你的问题的“范例”的一部分。一般来说,你将使
..
有人能提供TAILQ用法的小例子,从Linux系统库在C的解释,可以在Linux下使用gcc编译? 解决方案 的 TAILQ_ENTRY 宏用于建立用于将项目插入列表中的指针。你把它变成你要列出你的结构。 结构foo的{ TAILQ_ENTRY(富)tailq; INT数据; / * ... * / }; 的 TAILQ_HEAD 被用来定义将作为您的链接列表
..
我知道我能做到这一点: 的#define MACRO(API,...)\\ 布尔RET = API(123,## __ VA_ARGS__); 这仅仅是一个例子,这是一个更复杂的解决方案的一部分。问题的关键是,我需要可变数量的参数追加到第一123。 在##,使编译器带出123参数后面的逗号如果没有参数被传递到宏。 但现在我要追加参数的API,像这样:的#define MACRO(API,
..
考虑这个code: one.c: 的#include<&stdio.h中GT;诠释酮(){ 的printf(“一\\ n!”); 返回1; } two.c:的#include<&stdio.h中GT;诠释两(){ 的printf(“两\\ n!”); 返回2; } prog.c中的#include<&stdio.h中GT;诠释酮(); 诠释
..
我有以下的code: INT主要(无效) { 结构{INT X; } A,B; 结构{INT X; } C; 结构{INT X; } * P; B = A; /* 好 */ C = A; / *不*工作/ P =&放大器;一个; / *不*工作/ 返回0; } 而失败GCC(3.4.6)下进行编译,并出现以下错误: test.c以8:错误
..