草庐IT

c++ - g++ 优化标志 : -fuse-linker-plugin vs -fwhole-program

我正在阅读:http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html首先建议:不应将使用此选项(-fwhole-program)与-flto结合使用。相反,依赖链接器插件应该提供更安全、更精确的信息。然后,它建议:如果程序不需要导出任何符号,则可以结合-flto和-fwhole-program以允许过程间优化器使用更积极的假设,这可能导致改进的优化机会。当链接器插件处于事件状态时,不需要使用-fwhole-program(参见-fuse-linker-plugin)。这是否意味着理论上,使用-fuse-linker-plugin和-

c++ - g++ 优化标志 : -fuse-linker-plugin vs -fwhole-program

我正在阅读:http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html首先建议:不应将使用此选项(-fwhole-program)与-flto结合使用。相反,依赖链接器插件应该提供更安全、更精确的信息。然后,它建议:如果程序不需要导出任何符号,则可以结合-flto和-fwhole-program以允许过程间优化器使用更积极的假设,这可能导致改进的优化机会。当链接器插件处于事件状态时,不需要使用-fwhole-program(参见-fuse-linker-plugin)。这是否意味着理论上,使用-fuse-linker-plugin和-

c++ - 使用 g++ 构建的 C++ 中的运行时数组边界检查

有没有办法在使用g++编译的C++中进行数组边界检查?Valgrind的Memcheck无法检测堆栈上分配的数组的溢出。GCCextensionenabledby-fbounds-checking是onlyimplementedfortheCfrontend.理想情况下,不应以任何方式修改源代码。使用std::vector、std::tr1::array或boost::array不是一种选择,因为代码库很大等转移是不可行的。 最佳答案 Google的AddressSanitizer是一个编译器检测模块和运行时库,可以检查对堆、堆栈和

c++ - 使用 g++ 构建的 C++ 中的运行时数组边界检查

有没有办法在使用g++编译的C++中进行数组边界检查?Valgrind的Memcheck无法检测堆栈上分配的数组的溢出。GCCextensionenabledby-fbounds-checking是onlyimplementedfortheCfrontend.理想情况下,不应以任何方式修改源代码。使用std::vector、std::tr1::array或boost::array不是一种选择,因为代码库很大等转移是不可行的。 最佳答案 Google的AddressSanitizer是一个编译器检测模块和运行时库,可以检查对堆、堆栈和

c++ - G++未定义对类::函数的引用

这个问题在这里已经有了答案:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(38个回答)关闭4年前。我终于绝望了。因此,在我的c++类(class)中,我们被指示使用类。我们会让头文件声明类和函数,而单独的.cpp文件实现它。事情应该是有效的,但他们没有,而且网络上没有任何解决方案似乎对我有用。为此,我在linux上使用G++编译器,它似乎不适用于IDE或普通命令行。我在TBook.h中遇到的错误是:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86

c++ - G++未定义对类::函数的引用

这个问题在这里已经有了答案:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(38个回答)关闭4年前。我终于绝望了。因此,在我的c++类(class)中,我们被指示使用类。我们会让头文件声明类和函数,而单独的.cpp文件实现它。事情应该是有效的,但他们没有,而且网络上没有任何解决方案似乎对我有用。为此,我在linux上使用G++编译器,它似乎不适用于IDE或普通命令行。我在TBook.h中遇到的错误是:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86

c++ - 如何使用 g++ 创建具有特定名称的目标文件

我正在制作一个makefile,其中一个目标是exptrtest.o我如何使用g++创建一个具有该名称的对象文件,我的cpp文件的名称是exprtest.cpp而不是exptrtest.cpp?exptrtest.o:exprtest.cppg++-Wall-g-cexprtest.cpp为了更清楚,这是我的makefile:all:exprtestexprtest:exptrtest.odriver.oparser.tab.oscanner.og++-Wall-g-oexprtestexptrtest.odriver.oparser.tab.oscanner.oexptrtest.o

c++ - 如何使用 g++ 创建具有特定名称的目标文件

我正在制作一个makefile,其中一个目标是exptrtest.o我如何使用g++创建一个具有该名称的对象文件,我的cpp文件的名称是exprtest.cpp而不是exptrtest.cpp?exptrtest.o:exprtest.cppg++-Wall-g-cexprtest.cpp为了更清楚,这是我的makefile:all:exprtestexprtest:exptrtest.odriver.oparser.tab.oscanner.og++-Wall-g-oexprtestexptrtest.odriver.oparser.tab.oscanner.oexptrtest.o

c++ - 为什么 g++ 找不到 iostream.h?

我正在尝试了解如何在Ubuntu上使用g++和(最终)Clang从命令行编译C++程序。我找到了一个解释MakeFiles的网页,我正在按照他们的指示进行操作。http://mrbook.org/tutorials/make/我将这四个示例文件下载到各自的目录中。main.cpp你好.cppfactorial.cppfunctions.h然后我继续运行他们的示例,说明如何在没有MakeFile的情况下手动编译。g++main.cpphello.cppfactorial.cpp-ohello当我从上面运行命令时,我从g++收到以下错误:main.cpp:1:22:fatalerror:i

c++ - 为什么 g++ 找不到 iostream.h?

我正在尝试了解如何在Ubuntu上使用g++和(最终)Clang从命令行编译C++程序。我找到了一个解释MakeFiles的网页,我正在按照他们的指示进行操作。http://mrbook.org/tutorials/make/我将这四个示例文件下载到各自的目录中。main.cpp你好.cppfactorial.cppfunctions.h然后我继续运行他们的示例,说明如何在没有MakeFile的情况下手动编译。g++main.cpphello.cppfactorial.cpp-ohello当我从上面运行命令时,我从g++收到以下错误:main.cpp:1:22:fatalerror:i