如何获取文件中使用(或定义)的所有预处理器符号的列表?
我有许多 C/C++ 项目文件。我想知道文件使用的预处理器符号的完整列表。 gcc 是否有一个标志,或者是否有一些工具可以用来获取此列表。 或者,如果该…
lambda 中的 for 循环问题
我目前正在重写我前段时间编写的一个小项目,并用 std::function 和 lambda 替换函数指针。 在执行此操作时,我偶然发现了 lambda 中的 for 循环问题…
如何让这个用于加载模块的简单 C 测试程序正常工作?
我打算在 linux 上使用 dlopen 和 dlsym 来使这两个源文件工作: #include <dlfcn.h> #include <stdio.h> int main() { int *(func)(void) fun…
尝试将值分配给 typedef 结构变量的成员时出现问题
我已经声明了这样的 typedef 结构: typedef struct { u8 member_a u32 member_d u32 member_c u16 member_d } __attribute__((packed)) fourmembers …
执行 malloc() 期间的 EXC_BAD_ACCESS (KERN_INVALID_ADDRESS)
我正在 Mac OS X Snow Leopard 中使用以下 GCC 编译 C 库: Diderot:~ brandizzi$ gcc -v Using built-in specs. Target: i686-apple-darwin10 Config…
Linux 内核中的 asm__volatile()
有人可以解释一下这个函数到底在做什么吗?我尝试用谷歌搜索,但什么也没找到: long __res //some variable __asm__ volatile ( "movl $244, %êx" "m…
如何让 C++0x 和 __STRICT_ANSI__ 相处融洽?
我需要在项目中使用 popen ,但我得到: error: 'popen' was not declared in this scope 看起来 GCC 在 -std=c++0x 和(与我能找到的少量信息相反)-…
GCC 4.6 似乎不起作用
我已经下载了 GCC 4.6 的二进制文件,我已经在 code::blocks 中设置了工具链可执行文件,但这无法编译(不过我可以从命令行编译它): int main() { i…
在 gcc 内联汇编中引用寄存器的高半部分有任何限制吗?
在我的 C 代码中,有一些内联程序集调用 PCI BIOS 服务。现在的问题是,其中一个结果返回到 %ah 寄存器中,但我找不到引用该寄存器的常量。 我想要的…
GCC 除法截断(舍入问题)
在 Ubuntu Linux 10.04 上使用 GCC,除法后出现不需要的舍入。 我尝试过: #include <stdio.h> #include <stdlib.h> #include <string.h>…
用静态链接重新定义malloc/free有多个定义错误
最近,我的公司想将编译器从gcc-3.4更新到gcc-4.5。但是,我们客户的机器可能没有最新的 libstdc++.so,因此我们希望静态链接我们的二进制文件。 我们…
为什么我的程序可以在 Ubuntu gcc 上运行,但不能在 OSX gcc 上运行?
所以我的作业,我在 Ubuntu 中运行它,它编译得很好并且运行得像它应该的那样。但是当我在 Mac OSX 中运行它时,它出现总线错误。这是为什么? 我正在…
错误:不明确的默认类型转换 (c++)
我有一个类,它包装了一个枚举,以便于打印、序列化等。 我希望能够在 switch 语句中使用它作为传统的枚举,因此我一直使用 int() 重载器直到 gcc-4.3…