crti.o是编译器链接器生成的输出文件,它的作用是包含所有链接到可执行程序或者共享库的未定义符号。当您尝试编译包含C++的源文件时,如果您在程序中定义了一个类、函数或者类对象,但这个类、函数或者类对象在链接期间并不存在任何定义,则会导致未定义符号。
CRT代表C Run-Time库,它是C++的标准库,包含了各种C++中用于实现各种功能所需的函数和类。因此,crti.o文件丢失会引发编译过程中的问题或错误,您需要重新生成或修复这个文件。
为了解决这个问题,您可以尝试以下几种方法:
g++ test.cpp -o test -L /usr/lib/gcc/x86_64-pc-linux-gnu/8/libstdc++.so -L /usr/lib/gcc/x86_64-pc-linux-gnu/8/libgcc_s.so -L /usr/lib/gcc/x86_64-pc-linux-gnu/8/libgfortran.so -L /usr/lib/gcc/x86_64-pc-linux-gnu/8/libgcov.so -L /usr/include/i686-pc-linux-gnu/c++/8/backward/std.h -L /usr/include/c++/8 -lstdc++.a -L /usr/lib/x86_64-pc-linux-gnu/libuuid.so -L /usr/lib/x86_64-pc-linux-gnu/libnettle.so -L /usr/lib/x86_64-pc-linux-gnu/libssl.so -L /usr/lib/x86_64-pc-linux-gnu/libgnutls.so -L /usr/share/bash-completion/completions/gcc
如果在尝试了以上操作后,您的问题仍未解决,您可以考虑重新重新安装编译器及其相关的二进制文件。
领取专属 10元无门槛券
手把手带您无忧上云