Tag: 编译器构造

Visual Studio上的C

我正在努力学习C.作为C#开发人员,我的IDE是Visual Studio。 我听说这是一个很好的C / C ++开发环境。 然而,似乎无论我尝试做什么小事,直觉都让我失望。 有人可以为如何: 在Visual Studio中学习C的入口和出口 推荐一个更好的C IDE +编译器 编辑:另请参阅: https : //stackoverflow.com/questions/951516/a-good-c-ide

使用QtCreator找不到-lrt的库

使用选项“-lrt”构建的QT让我遇到一些麻烦 我正在使用带有QT创建者1.2.1的mac os 10.6,heeeeeeelp! 这是完整的构建命令: g ++ -headerpad_max_install_names -o AMiningCoreTest main.o tokenizer.o DictionnaryToolBox.o mysql.o btree.o BTreeDataTable.o tcaccess.o -L / Library / Frameworks -L / usr / lib / mysql -lmysqlclient -L / usr / local / lib / -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc 它结束了 ld:找不到-lrt collect2的库:ld返回1退出状态

外部内联函数会发生什么?

如果我在.h文件中定义我的函数会发生什么 extern int returnaint(void); ,在相关的.c文件中定义它 inline int returnaint(void) { return 1; } 并在另一个.c文件中包含标题并使用该函数? 当我单独编译事物,为每个.c文件创建一个目标文件然后链接它们时,是否包含内联函数,或者会发生什么? 我知道编译器可以忽略inline ,但是如果它在这种情况下不忽略它呢?

是否存在C / C ++的R编译器?

我想知道部署R的最佳方法.Matlab有“matlab编译器”(MCR)。 对R来说,过去已经讨论过将R编译成C或C ++的类似内容。 有没有人有任何由John Garvin在Rice开发的R to C编译器(RCC)的经验? 我已经研究过它,它似乎是唯一一个将R代码编译成可执行代码的项目。 据我所知,它还没有被使用。 [编辑1:] :要清楚,我知道有R和R(rJava,rcpp,Rpy等)的C和C ++(以及Java,Python等)接口。 我想知道在没有事先安装R的情况下编译和部署R代码的具体方法。 [编辑2:] :John Mellor-Crummey告诉我,他们仍然在为RCC工作,并希望在4个月左右(最早)提供。 如果我发现其他任何问题,我会进一步更新。

避免C程序中的主(入口点)

是否可以避免C程序中的入口点(主)。 在下面的代码中,是否可以调用func()调用而无需通过以下程序中的main()调用? 如果是,如何做,何时需要,为什么要给出这样的规定? int func(void) { printf(“This is func \n”); return 0; } int main(void) { printf(“This is main \n”); return 0; }

什么决定整数的大小?

sizeof(int)在我的Dev Cpp上显示4,即使它在64位机器上运行。 为什么不考虑底层硬件并显示8呢? 另外,如果我编译环境也改为64位( 64 bit compiler首先有意义吗?!),那么int的大小会改变吗? 是否有任何标准来决定这一点?

GCC的__attribute __((__ packed__))是否保留原始排序?

目的 我正在用C编写一个网络程序(特别是gnu89 ),我想通过将某个struct X重新解释为大字节数组(也就是char ),通过网络发送字节,并将它们重新解释为struct X来简化事情。另一边。 为此我决定使用gcc的__attribute __((__ packed__))。 我已尽力确保正确完成(即我已经考虑了字节序和其他相关问题)。 题 除了保证struct X尽可能小,gcc是否保证使用__attribute __((__ packed__))定义的struct保留原始排序? 我已经做了相当多的搜索,我还没有找到关于这种保证是否存在的任何文件。 笔记 可以安全地假设发送方和接收方都不会遇到可移植性问题(例如服务器上的sizeof(int)等于客户端上的sizeof(int) )。

编译错误:在程序等中迷路’\ 302′

我在编译后面的漏洞利用代码时遇到问题: http://downloads.securityfocus.com/vulnerabilities/exploits/59846-1.c 我正在使用:“gcc file.c”和“gcc -O2 file.c”,但它们都会出现以下错误: sorbolinux-exec.c: In function ‘sc’: sorbolinux-exec.c:76: error: stray ‘\302’ in program sorbolinux-exec.c:76: error: stray ‘\244’ in program sorbolinux-exec.c:76: error: ‘t’ undeclared (first use in this function) sorbolinux-exec.c:76: error: (Each undeclared identifier is reported only once sorbolinux-exec.c:76: error: for each function it appears in.) 我尝试在Kali linux和Ubuntu 10.04上编译它们并得到相同的结果。

C中空结构的大小是多少?

据我说,它是零,但这里似乎有点混乱 我用gcc编译器对它进行了测试,它给出了零作为输出。 我知道在C ++中,空类的大小是1.如果我在这里遗漏任何东西,请告诉我。

自动将进入/退出function日志添加到项目

我有第三方源代码,我必须调查。 我想知道调用函数的顺序,但我不想浪费时间输入: printf(“Entered into %s”, __FUNCTION__) 和 printf(“Exited from %s”, __FUNCTION__) 对于每个function,我也不想触摸任何源文件。 你有什么建议吗? 是否有一个编译器标志可以自动为我执行此操作? 澄清评论: 我将交叉编译源代码以在ARM上运行它。 我将用gcc编译它。 我不想分析静态代码。 我想跟踪运行时。 所以doxygen不会让我的生活更轻松。 我有源,我可以编译它。 我不想使用面向方面编程。 编辑:我发现gdb提示符中的’frame’命令在那个时间点打印当前帧(或者,你可以说是函数名)。 也许,每次调用函数时,都可以(使用gdb脚本)调用’frame’命令。 你怎么看?