草庐IT

c++ - 如何在 GCC 为 C++03 的 CentOS 6 上部署 C++11 程序(具有依赖项)?

只要您使用相同的C++标准[1,GCC就具有很好的ABI兼容性。].但令我震惊的是,如果GCC4.3在C++03模式下编译的共享库暴露了一个std::string,这将是一个不同的std::string比GCC4.8在C++11模式下编译的可执行文件所理解的字符串。我问的原因是我打算在CentOS6上部署一个由GCC4.8以C++11模式编译的程序,它的最大打包GCC是4.3...派对C++库或更多系统级的东西)因此大概都是C++03。但如果是这种情况,我们将永远无法在较旧的Linux发行版上部署任何C++11程序,这似乎不太可能。我是否天真地认为这里可能存在问题?如果有,我该如何解决

c++ - 如何在 GCC 为 C++03 的 CentOS 6 上部署 C++11 程序(具有依赖项)?

只要您使用相同的C++标准[1,GCC就具有很好的ABI兼容性。].但令我震惊的是,如果GCC4.3在C++03模式下编译的共享库暴露了一个std::string,这将是一个不同的std::string比GCC4.8在C++11模式下编译的可执行文件所理解的字符串。我问的原因是我打算在CentOS6上部署一个由GCC4.8以C++11模式编译的程序,它的最大打包GCC是4.3...派对C++库或更多系统级的东西)因此大概都是C++03。但如果是这种情况,我们将永远无法在较旧的Linux发行版上部署任何C++11程序,这似乎不太可能。我是否天真地认为这里可能存在问题?如果有,我该如何解决

c++ - 调试 GCC 编译时间

这个问题在这里已经有了答案:ProfilingtheC++compilationprocess(7个回答)关闭7年前。我正在C++0x中创建一个相当大的库在Linux中使用GCC4.6。我的库严重依赖模板类,导致使用该库的应用程序的编译时间很长。我想通过提供最糟糕的违规类型/方法的显式实例来开始加快速度。有没有办法让GCC报告编译各种类型/方法所花费的时间,以便我可以以原则的方式应用我的显式实例化,而不是通过直觉? 最佳答案 g++some_file.cc-ftime-report将为您粗略估计在不同编译器阶段所花费的时间。在您的情

c++ - 调试 GCC 编译时间

这个问题在这里已经有了答案:ProfilingtheC++compilationprocess(7个回答)关闭7年前。我正在C++0x中创建一个相当大的库在Linux中使用GCC4.6。我的库严重依赖模板类,导致使用该库的应用程序的编译时间很长。我想通过提供最糟糕的违规类型/方法的显式实例来开始加快速度。有没有办法让GCC报告编译各种类型/方法所花费的时间,以便我可以以原则的方式应用我的显式实例化,而不是通过直觉? 最佳答案 g++some_file.cc-ftime-report将为您粗略估计在不同编译器阶段所花费的时间。在您的情

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