gcc相关内容
我编程嵌入式的PowerPC问题 32系统具有32千字节的8路组相联的L2指令缓存。为了避免缓存反覆我们的方式在单独的缓存设置,这样一组被称为在高频功能的文本(想想中断code)结束对齐功能。我们根据需要插入虚拟功能做到这一点,例如。 无效high_freq1(无效) { ... }虚拟无效(无效) { __asm __(/ *傻运codeS填补〜100〜1000字节的文本段*的
..
最近我一直在与交叉编译使用GCC打转转,发现似乎是一个复杂的区域,工具链。 我不太明白这一点,因为我是在IM pression GCC下可以创建二进制机器code对大多数常见的结构,和所有的其他真正重要的是什么库与你联系什么可执行文件类型创建。 能不GCC做所有这些事情本身?与海湾合作委员会的一个版本,所有适当的库和正确的旗帜送到GCC,我可以生产用于在Windows x86机器PE可执行文件
..
我使用的GCC,我需要什么样的交换机添加与Xlib的链接?搜索后,所有我能找到的是 -lX11 ,但给我的 LD:找不到-lX11库 我使用的是Mac(10.6),但我不喜欢任何与Mac专用。 解决方案 您通常可以使用 章pkg-配置 来确定你需要传递的标志: 我的gcc-program.c $(pkg配置--cflags --libs X11)-o我的节目
..
我想编译这个。 program.c 的#include< libav codeC / AV codec.h>诠释主(){ INT I = avpicture_get_size(AV_PIX_FMT_RGB24,300,300); } 运行此的gcc -I $ HOME /的ffmpeg /包括program.c 给误差 /tmp/ccxMLBme.o:在函数'主':
..
很多时候,我想一个函数来接受可变数量的参数,以NULL结尾,例如 的#define推(stack_t栈,...)_push(__ VARARG__,NULL); FUNC _push(stack_t栈,字符* S,...){ va_list的ARGS; 的va_start(参数,S); 而(S =在va_arg(参数,字符*))push_single(堆栈,S); }
..
我使用 GCC (Ubuntu的4.4.1-4ubuntu9)来编译我正在写一个程序,但它似乎呕吐,只要自己认为//注释在我的code,说: interface.c:##:错误:之前预计A / A令牌LT前pression; 请问 GCC 编译模式我使用禁止 // 的意见? $ gcc的-g -ansi -pedantic interface.c structs.h -c -I。 -I /
..
我目前使用 GCC 4.6.3 。我的理解是, GCC 默认使用 gnu89 标准,我想使C11,最新的C标准。我想: [pauldb @ pauldb-笔记本电脑测试] $ GCC -std = C11 -o测试test.c的 CC1:错误:无法识别的命令行选项“-std = C11' 我换成 C11 与 gnu11 ,我也得到了同样的错误。什么是正确的方法,使海合会最新的C标准? (注
..
你怎么能映射回函数名和行号,在GCC一个内存地址? 即假设在C语言中的原型: 无效FUNC(){ //获取调用者的地址,也许这是可以避免的 MemoryAddress = get_call_address(); //从源头code哪条线执行时,它调用FUNC() LINENUMBER = get_lineno_from_symbol(安培; MemoryAddress); //
..
林问我自己,我可以使用BSD套接字上严格别名,而不会被用gcc编译得到未定义的行为? 绑定(sdListen,(结构sockaddr *)及sockaddr_inIdentifier,sizeof的(sockaddr_inIdentifier)) code此行打破了严格别名规则,据我所知(和gcc给了我同样的警告)。 那么,有没有B计划利用O3模式插座头也不回的strictaliasing
..
是有可能写出使用系统调用从内联汇编块中的单个字符?如果是这样,怎么样?它应该看“东西”是这样的: __ asm__ __volatile__ ( “MOVL $ 1,EDX %% \\ n \\ t”的 “MOVL $ 80 %% ECX \\ n \\ t”的
..
我有这样的code: main.h 的#ifndef MAINH #定义MAINH ... #包括“my_struct.h” 无效some_func(my_structure * X); ... #万一 和 my_struct.h 的#ifndef UTILSH #定义UTILSH ... 的#include“main.h” ... typedef结构{ABCD int类型的
..
是多大(约)的I / O系统调用在Linux上从开销ç节目,我的意思是多么糟糕例如运行许多小读/写与读操作比较/写上大的缓冲区(在常规文件上或者网络套接字)?应用强烈多线程的。 解决方案 系统调用至少需要1-2微秒上最现代化的机器的只是为了系统调用的开销的,和更多的时间,如果他们做任何事情复杂,可以阻止或睡眠。期望至少20微秒和高达毫秒的IO的顺序。有一个微小的函数调用或宏从一个用户空间的
..
我读人页,我的理解是,如果的write()将失败,并将在错误号到 EAGAIN 或 EINTR ,我可以执行的write()了,所以我想出了以下code: RET = 0; 而(RET!=计数){ write_count =写(connFD,(字符*)BUF + RET,计数); 而(write_count℃,){ 开关(错误){ 案例EINTR
..
首先,我想它停止对警告。但我也想打印出一些信息消息(如“回来,并实现这个!”)。 不幸的是,我的编译器不支持 #info , #message ,#编译消息()等 我知道有 -Wno错误=<东西> ,但我的谷歌-foo是弱,我似乎无法找出<&东西GT; 为指令#warning 。我试过 -Wno错误=警告,而只是说“有没有 -Wwarning ”。同样的,“警告” 有什么建
..
我有Ubuntu的安装11在我的系统。我有一个使用pthread库的C程序。 我得到的错误未定义参考sem_wait()即使我曾与标志编译 -lpthread 。 例如: 的gcc -lpthread prog.c中 该项目工程罚款等Ubuntu的安装。 解决方案 尝试: GCC -pthread 而不是 -lpthread 。所不同的是显著,我相信。后者是链接到的的libpth
..
我收到以下错误试图安装Ruby 1.9.3上TRISQUEL 6使用以下命令 RVM安装1.9.3 错误 错误运行'的./configure - preFIX = /家庭/约书亚/ .rvm /红宝石/红宝石1.9.3-P448 --disable安装-doc的--enable-共享“,请阅读/home/joshua/.rvm/log/ 1379507772_ruby-1.9.3-P44
..
首先,这里是ISO C标准说,大约位字段,引述 N1570 2011年的ISO C标准的草案,部分6.7.2.1: 一个位字段应具有一个类型,是一个合格的或不合格 版本 _Bool ,符号int , unsigned int类型或其他 实现定义的类型。这是实现定义是否 原子类型是允许的。 ... 一个位域间preTED为具有符号或无符号整型 位组成的指定数字的。如果该值为
..
考虑一个大的项目,其中许多类型的typedef 'D,例如 的typedef INT年龄; 的typedef INT高度; 和某些功能得到这些类型的参数:无效printPerson(年龄,高度h){ 的printf(“%年龄D,身高%d个\\ N”,A,H); } 有没有办法在编译时警告,如果这些参数是错误的类型,例如年龄= 30; 高度h = 180; printPerson(
..
如何安装一个C正则表达式到MinGW的?我使用的是海湾合作委员会... 我运行Windows XP。 我preFER一个更新的。 谢谢你。 解决方案 您有几种选择: 的MinGW-libgnurx 从MinGW的用户提供的区域; 从自述: 从glibc的2.5 正则表达式的功能提取到一个单独的库,为Win32 MSYS正则表达式 ; 从包装说明: 当前版
..
我正在开发可独立执行的共享库来打印它自己的版本号。 我已经定义了一个自定义的入口点为: 为const char my_interp [] __attribute __((节(“插值”)))=“/lib64/ld-linux-x86-64.so.2”;无效my_main(){ 的printf(“版本:%d个\\ N”,0); _exit(0); } 和我编译的gcc -o l
..