草庐IT

c++ - 跟踪 gcc 编译以及哪些代码减慢了它的速度

我想找出导致gcc编译时间变慢的代码。我以前有一个代码编译得很慢,有人告诉我命令行开关让gcc打印它编译的每个步骤,包括每个函数/变量/符号等。这很有帮助(我可以在控制台中看到gcc阻塞的地方),但我忘记了开关是什么。 最佳答案 我找到了它(来自gccmanpage):-QMakesthecompilerprintouteachfunctionnameasitiscompiled,andprintsomestatisticsabouteachpasswhenitfinishes. 关于c

c++ - 跟踪 gcc 编译以及哪些代码减慢了它的速度

我想找出导致gcc编译时间变慢的代码。我以前有一个代码编译得很慢,有人告诉我命令行开关让gcc打印它编译的每个步骤,包括每个函数/变量/符号等。这很有帮助(我可以在控制台中看到gcc阻塞的地方),但我忘记了开关是什么。 最佳答案 我找到了它(来自gccmanpage):-QMakesthecompilerprintouteachfunctionnameasitiscompiled,andprintsomestatisticsabouteachpasswhenitfinishes. 关于c

c++ - GCC 如何处理内置函数

对GCC的内置函数理解有困难,感到很困惑。库函数和内置函数有什么区别?有没有内置函数可以做而库函数不能做的事情?我可以编写一个库函数来执行与内置函数printf相同的任务吗?如何判断输入参数的类型(%f、float或double)?GCC内置函数的机器指令不存储在库中,对吧?他们在哪里?在做链接的时候,如何控制这些内置函数代码的放置位置?为什么有时我在链接时会出现“未定义对__builtin_stdarg_start的引用”之类的错误消息//main.c#includeintmain(void){printf("helloworld!\n");return0;}gcc-cmain.c,

c++ - GCC 如何处理内置函数

对GCC的内置函数理解有困难,感到很困惑。库函数和内置函数有什么区别?有没有内置函数可以做而库函数不能做的事情?我可以编写一个库函数来执行与内置函数printf相同的任务吗?如何判断输入参数的类型(%f、float或double)?GCC内置函数的机器指令不存储在库中,对吧?他们在哪里?在做链接的时候,如何控制这些内置函数代码的放置位置?为什么有时我在链接时会出现“未定义对__builtin_stdarg_start的引用”之类的错误消息//main.c#includeintmain(void){printf("helloworld!\n");return0;}gcc-cmain.c,

c++ - GCC 可以从最终输出中消除什么样的死代码?

我一直被告知编译器足够聪明,可以消除死代码。我正在编写的大部分代码在编译时都有很多已知信息,但代码必须以最通用的形式编写。我不知道任何程序集,所以我无法检查生成的程序集。在最终的可执行文件中可以有效地消除什么样的代码?几个例子但不限于f(boolb){if(b){//somecode}else{//somecode}}f(true);//////////////////////////templatef(){if(b){//somecode}else{//somecode}}f();///////////////////////////如果f的定义在其他目标代码中,而被调用的f(tru

c++ - GCC 可以从最终输出中消除什么样的死代码?

我一直被告知编译器足够聪明,可以消除死代码。我正在编写的大部分代码在编译时都有很多已知信息,但代码必须以最通用的形式编写。我不知道任何程序集,所以我无法检查生成的程序集。在最终的可执行文件中可以有效地消除什么样的代码?几个例子但不限于f(boolb){if(b){//somecode}else{//somecode}}f(true);//////////////////////////templatef(){if(b){//somecode}else{//somecode}}f();///////////////////////////如果f的定义在其他目标代码中,而被调用的f(tru

c++ - gcc4.9.2的std::vector的libstdc++实现继承自_Vector_base(非虚拟析构函数)。为什么这样可以?

Thisquestionalreadyhasanswershere:Thoushaltnotinheritfromstd::vector(13个回答)6年前关闭。所以一段时间以来,我一直在使用从std::vector派生的容器。也许由于几个原因,这是一个糟糕的设计决策,并且在此处广泛讨论了是否应该这样做的问题:Thoushaltnotinheritfromstd::vectorSubclass/inheritstandardcontainers?IsthereanyrealrisktoderivingfromtheC++STLcontainers?Isitokaytoinheritim

c++ - gcc4.9.2的std::vector的libstdc++实现继承自_Vector_base(非虚拟析构函数)。为什么这样可以?

Thisquestionalreadyhasanswershere:Thoushaltnotinheritfromstd::vector(13个回答)6年前关闭。所以一段时间以来,我一直在使用从std::vector派生的容器。也许由于几个原因,这是一个糟糕的设计决策,并且在此处广泛讨论了是否应该这样做的问题:Thoushaltnotinheritfromstd::vectorSubclass/inheritstandardcontainers?IsthereanyrealrisktoderivingfromtheC++STLcontainers?Isitokaytoinheritim

c++ - 通过 `gcc -v` 查看 Mac OS X 中 C header 的默认包含路径?

我试图通过使用gcc-v在MacOSX(Mavericks)中找到C编译器的默认包含路径:$gcc-vConfiguredwith:--prefix=/Applications/Xcode.app/Contents/Developer/usr--with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1AppleLLVMversion5.0(clang-500.2.

c++ - 通过 `gcc -v` 查看 Mac OS X 中 C header 的默认包含路径?

我试图通过使用gcc-v在MacOSX(Mavericks)中找到C编译器的默认包含路径:$gcc-vConfiguredwith:--prefix=/Applications/Xcode.app/Contents/Developer/usr--with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1AppleLLVMversion5.0(clang-500.2.