我是GCC源代码的新手。我开始对 libstdc ++ - v3 进行一些简单的修改,因为我需要对我正在处理的项目进行更大的修改。
我下载了GCC 4.8.5源代码并在__cxxabiv1::__cxa_allocate_exception
函数中添加了一个print语句,以便知道函数何时被调用。为了测试它,我做了 make -j4 ,之后 make install 。使用这个构建版本的GCC,我编译了一个抛出异常的简单程序。但是,没有显示打印件。
然后我尝试在同一个函数中递增一个全局变量,该变量在我试图编译的程序中声明。使用GDB我意识到全局变量在范围内但从未增加。最后,我尝试将消息写入文件,但文件从未创建过。
我确信正在调用该函数。但我不确定为什么它没有做它应该做的事情。如果我在代码中输错了它就不会编译,但是当它修改时不会反映在程序的行为中。
我需要知道我是做错了什么来测试我正在进行的一些修改,或者我可以阅读某些指南以开始与GCC源代码合作。
答案 0 :(得分:2)
您需要调整LD_LIBRARY_PATH
以指向您的GCC / lib目录,否则您的二进制文件将使用您的系统libstdc++
。
另一种方式是-static-libstdc++
。