Questions tagged «gcc»

GCC是GNU编译器集合。它是Linux上针对C,C ++,Go,Fortran和Ada的事实上的标准编译器,并且还支持许多其他语言和平台。除编译器外,GCC还具有一个工具链(libc,libstdc ++,objdump,nm等),该工具链已在多个平台和系统上广泛使用。


30
未定义对vtable的引用
在构建C ++程序时,出现错误消息 未定义引用'vtable ... 这个问题是什么原因造成的?我如何解决它? 碰巧我收到以下代码的错误(所涉及的类是CGameModule。)而我一生都无法理解问题所在。起初,我认为这与忘记赋予虚拟功能一个实体有关,但是据我了解,一切都在这里。继承链有点长,但是这里是相关的源代码。我不确定应该提供什么其他信息。 注意:似乎是构造函数发生此错误的地方。 我的代码: class CGameModule : public CDasherModule { public: CGameModule(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, CDasherInterfaceBase *pInterface, ModuleID_t iID, const char *szName) : CDasherModule(pEventHandler, pSettingsStore, iID, 0, szName) { g_pLogger->Log("Inside game module constructor"); m_pInterface = pInterface; } virtual ~CGameModule() {}; std::string GetTypedTarget(); std::string GetUntypedTarget(); bool DecorateView(CDasherView …
357 c++  gcc  g++ 

16
gcc makefile错误:“没有规则可以使目标……”
我正在尝试使用带有makefile的GCC(linux)来编译我的项目。 我收到以下错误,在这种情况下似乎无法破译: "No rule to make target 'vertex.cpp', needed by 'vertex.o'. Stop." 这是makefile: a.out: vertex.o edge.o elist.o main.o vlist.o enode.o vnode.o g++ vertex.o edge.o elist.o main.o vlist.o enode.o vnode.o main.o: main.cpp main.h g++ -c main.cpp vertex.o: vertex.cpp vertex.h g++ -c vertex.cpp edge.o: edge.cpp edge.h g++ -c num.cpp vlist.o: vlist.cpp vlist.h …
355 gcc  makefile 

10
Linux内核中可能的/不太可能的宏如何工作,它们的好处是什么?
我一直在研究Linux内核的某些部分,并找到了如下调用: if (unlikely(fd < 0)) { /* Do something */ } 要么 if (likely(!err)) { /* Do something */ } 我找到了它们的定义: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) 我知道它们是为了优化,但是它们如何工作?使用它们会导致多少性能/尺寸下降?至少在瓶颈代码中(当然在用户空间中)值得麻烦(并且可能失去可移植性)。

5
__attribute __((constructor))到底如何工作?
似乎很清楚,它应该进行设置。 它什么时候运行? 为什么有两个括号? 是__attribute__功能吗?宏?句法? 这在C中有效吗?C ++? 它使用的功能是否必须是静态的? 什么时候__attribute__((destructor))运行? Objective-C中的示例: __attribute__((constructor)) static void initialize_navigationBarImages() { navigationBarImages = [[NSMutableDictionary alloc] init]; } __attribute__((destructor)) static void destroy_navigationBarImages() { [navigationBarImages release]; }
347 c++  objective-c  c  gcc 


4
此C函数应始终返回false,但不返回
很久以前,我在一个论坛上偶然发现了一个有趣的问题,我想知道答案。 考虑以下C函数: f1.c #include <stdbool.h> bool f1() { int var1 = 1000; int var2 = 2000; int var3 = var1 + var2; return (var3 == 0) ? true : false; } false自以来应始终返回var3 == 3000。该main函数如下所示: main.c #include <stdio.h> #include <stdbool.h> int main() { printf( f1() == true ? "true\n" : "false\n"); …
316 c  gcc 

9
如何在Mac OS X 10.8 / Xcode 4.4上使用/安装gcc
我已经安装了Mountain Lion(Mac OS X 10.8),现在gcc似乎不再可用。我还安装了Xcode 4.4,因此没有更多的/ Developer目录。 我既需要Mac端口也需要gcc,也需要使用ruby gem(具有本地扩展名)。 Xcode 4.4是否包含gcc或是否可以安装gcc?
294 xcode  macos  gcc 


7
如何强制make / GCC向我显示命令?
我正在尝试调试编译问题,但似乎无法获得GCC(或者可能是make ??)来向我展示其正在执行的实际编译器和链接器命令。 这是我看到的输出: CCLD libvirt_parthelper libvirt_parthelper-parthelper.o: In function `main': /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:102: undefined reference to `ped_device_get' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:116: undefined reference to `ped_disk_new' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:122: undefined reference to `ped_disk_next_partition' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition' collect2: ld returned 1 exit status make[3]: *** [libvirt_parthelper] Error 1 我想看的应该与此类似: $ make gcc -Wall …
276 gcc  makefile  verbosity 

16
无法在带有RVM的Lion下安装Ruby – GCC问题
有关此问题的大多数问题是由于缺少Xcode造成的。我已经安装了Xcode 4.2。 安装尝试: rvm install 1.9.3 Installing Ruby from source to: /Users/jamie/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)... ruby-1.9.3-p0 - #fetching ruby-1.9.3-p0 - #extracted to /Users/jamie/.rvm/src/ruby-1.9.3-p0 (already extracted) Fetching yaml-0.1.4.tar.gz to /Users/jamie/.rvm/archives Extracting yaml-0.1.4.tar.gz to /Users/jamie/.rvm/src Configuring yaml in /Users/jamie/.rvm/src/yaml-0.1.4. Compiling yaml in /Users/jamie/.rvm/src/yaml-0.1.4. Installing yaml to …
268 ruby  gcc  rvm  osx-lion  xcode4.2 


10
使用GCC生成可读的程序集?
我想知道如何在我的C源文件上使用GCC来转储机器码的助记符版本,以便可以看到我的代码被编译成什么。您可以使用Java来做到这一点,但我无法通过GCC找到一种方法。 我试图在汇编中重新编写C方法,看看GCC如何做到这一点会有很大帮助。
256 c  gcc  assembly 

3
构造函数初始化列表评估顺序
我有一个带有一些参数的构造函数。我以为它们是按照列出的顺序构造的,但是在一种情况下,看来它们是反向构造的,从而导致中止。当我反转参数时,程序停止中止。这是我使用的语法示例。事实是,在这种情况下,a_需要在b_之前初始化。能保证施工顺序吗? 例如 class A { public: A(OtherClass o, string x, int y) : a_(o), b_(a_, x, y) { } OtherClass a_; AnotherClass b_; };
252 c++  gcc  c++-faq 

6
GCC转储预处理器定义
Наэтотвопросестьответына 堆栈溢出нарусском:Какузнатьсписоквсехопределённыхмакросов? gcc / g ++是否可以从命令行转储其预处理程序定义?我的意思是__GNUC__,__STDC__等等。
248 gcc  g++  c-preprocessor 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.