我正在使用GCC,我需要添加哪些开关才能与Xlib链接? 搜索之后,我找到的只是-lX11 ,但这给了我ld: library not found for -lX11 我正在使用mac(10.6),但我不喜欢Mac特有的任何东西。
有一段时间,我一直用科学记数法表示常量中10的大功率,所以我不必计算零。 例如 #define DELAY_USEC 1e6 一位同事指出这不安全,因为它不是一个整数,并且不能保证总是完全等于1000000。 文档似乎证实了这一点,但我想知道它在实用性方面是否真实。 有没有办法用速记安全地声明十进制的整数? 将它强制转换为定义中的int是否安全?
gcc生成浮动代码,为以下代码引发SIGFPE : #include int x = -1; int main() { return INT_MIN % x; } 但是,我在标准中找不到此代码调用未定义或实现定义的行为的语句。 据我所知,它需要返回0.这是gcc中的错误还是我错过了标准所做的一些特殊例外?
我想知道GCC中float的大小,而不必运行编译器。 我知道一个选项是编写一个小函数并让编译器打印出一个汇编列表。 有limits.h ,它包含最小值和最大值,但有没有类似的东西告诉不同的隐式类型的大小? 我在Windows 7 x64上使用GCC; 目标平台是ARM7 32位模式。 语言是C.
我有一个函数,它对一段数据进行操作(比方说,一个int ),我想通过传递对valule的引用来改变它。 因此,我有函数: void myFunction(int *thing) { … } 。 当我使用它时,我称之为: myFunction(&anInt) 。 由于我的function经常被调用(但是来自许多不同的地方),我担心它的性能。 我将其重构为函数的原因是可测试性和代码重用。 编译器是否能够优化函数,将其内联直接在我的anInt变量上运行? 我希望你能按照它所要求的精神来接受这个问题(即我不会过早地担心优化问题,我对答案感到好奇)。 同样,我不想把它变成一个宏。
我的一个(嵌入式)目标只有一个C89编译器。 我正在开发一个针对多个设备的(业余爱好)项目。 有没有办法在C89中编译(转换?)C11代码库? (否则我将不得不像1989年那样编码,字面意思。)
我正在玩标签作为值 ,最后得到这个代码。 int foo = 0; goto *foo; 我的C / C ++经验告诉我*foo意味着dereference foo并且这不会编译因为foo不是指针。 但它确实编译。 这实际上是做什么的? gcc (Ubuntu 4.9.2-0ubuntu1~12.04) 4.9.2 ,如果重要的话。
我用文件pila.h和pila.c了一个库。 我使用gcc pila.c -c编译文件pila.c ,这个库工作正常。 我测试过了。 然后我又建了一个图书馆。 该库包含文件pila_funciones_extra.h和pila_funciones_extra.c 。 在这个库中,我需要包含第一个库。 在文件pila_funciones_extra.h我将下一行包括在内: #include “pila.h” 并在文件pila_funciones_extra.c我放下一行: #include “pila_funciones_extra.h” 必须如此。 但是当我尝试编译文件pila_funciones_extra.c ,编译器不会识别包含库pila 。 它表示库pila中定义的函数,结构,常量和宏尚未定义。 我尝试使用gcc pila_funciones_extra.c -c和gcc pila_funciones_extra.c -c pila.o编译它,但它不起作用。 我确保所有文件都在同一个文件夹中。 我正在研究Ubuntu。 谁能告诉我正确的编译方法?
#include #include int main(int argc, char **argv) { printf(“MySQL client version: %s\n”, mysql_get_client_info()); } 〜$ gcc -o mysql-test MySQL-Test.c 我试图从终端执行此测试程序,但得到以下错误消息: /tmp/cceEmI0I.o:在函数main’: MySQL-Test.c:(.text+0xa): undefined reference to mysql_get_client_info的main’: MySQL-Test.c:(.text+0xa): undefined reference to ‘ 怎么了? 我的系统是ubuntu
我尝试创建一个打印“hello world”的简单引导程序。 当我调用一个只打印“hello world”的函数时,我可以这样做,但是当我调用一个函数来打印一个特定的字符串时,什么也没发生。 为此,我使用两个文件。 第一个是boot.ld,第二个是boot.cpp(它也可以在C中使用boot.c)。 首先,我从终端创建软盘: dd if = / dev / zero of = floppy.img bs = 512 count = 2880 其次,我编译代码(boot.cpp和boot.ld): gcc -c -g -Os -m64 -ffreestanding -Wall -Werror boot.cpp -o boot.o ld -static -Tboot.ld -nostdlib –nmagic -o boot.elf boot.o objcopy -O binary boot.elf boot.bin 最后,我将boot.bin添加到floppy.img中: dd if = boot.bin of = […]