【Debug】【Ubuntu】cannot find crt1.o | cannot find lgcc_s

本文详细介绍了如何在64位Linux系统中解决32位编译遇到的crt1.o和lgcc_s缺失问题,通过查找并链接所需的32位支持文件,确保编译过程顺利进行。

问题是,可能只有当前架构的gcc,而且是64位的。所以需要32位的支持文件。

对于 cannot find crt1.o

查找crti.o文件

sudo find /usr/ -name crti.o

打开~/.bashrc文件

gedit ~/.bashrc

添加下面的内容,保存

LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
export LIBRARY_PATH

更新环境变量

source ~/.bashrc

对于 cannot find lgcc_s

查找lgcc_s文件

sudo find /usr/ -name libgcc_s.so

查看连接lgcc_s文件的时候的查找目录,会发现找不到-lgcc_s

ld -lgcc_s --verbose

在这里插入图片描述

将找到的libgcc_s.so和libgcc_s.so.1软连接到相应的目录/usr/lib/x86_64-linux-gnu/

sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libgcc_s.so /usr/lib/x86_64-linux-gnu/
sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libgcc_s.so.1 /usr/lib/x86_64-linux-gnu/

再次查看,已经找到了
在这里插入图片描述

[root@localhost build]# echo $LD_LIBRARY_PATH /usr/local/smartchip/lib:/usr/local/openmpi/lib:/usr/local/openmpi/lib: [root@localhost build]# export LD_LIBRARY_PATH=/path/to/library:$LD_LIBRARY_PATH [root@localhost build]# find / -name "crt1.o" 2>/dev/null /usr/lib64/crt1.o [root@localhost build]# ln -s /usr/lib64/crt1.o /usr/lib/crt1.o [root@localhost build]# yum install -y gcc Last metadata expiration check: 1:58:52 ago on Wed 19 Nov 2025 02:35:42 PM CST. Package gcc-7.3.0-2020033101.58.p01.ky10.x86_64 is already installed. Dependencies resolved. Nothing to do. Complete! [root@localhost build]# ../configure --prefix=/usr/local/gcc-10.2.0 checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking target system type... x86_64-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether ln works... yes checking whether ln -s works... yes checking for a sed that does not truncate output... /usr/bin/sed checking for gawk... gawk checking for libatomic support... yes checking for libitm support... yes checking for libsanitizer support... yes checking for libvtv support... yes checking for libhsail-rt support... yes checking for libphobos support... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking whether g++ accepts -static-libstdc++ -static-libgcc... no checking for gnatbind... no checking for gnatmake... no checking whether compiler driver understands Ada... no checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2 checking for objdir... .libs configure: WARNING: using in-tree isl, disabling version check The following languages will be built: c,c++,fortran,lto,objc *** This configuration is not supported in the following subdirectories: gnattools gotools target-libada target-libhsail-rt target-libphobos target-zlib target-libgo target-libffi target-liboffloadmic (Any other directories should still work fine.) checking for default BUILD_CONFIG... bootstrap-debug checking for --enable-vtable-verify... no /usr/bin/ld: cannot find crti.o: No such file or directory /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/7.3.0/libgcc.a when searching for -lgcc /usr/bin/ld: cannot find -lgcc /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/7.3.0/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: cannot find -lgcc_s /usr/bin/ld: cannot find -lc /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/7.3.0/libgcc.a when searching for -lgcc /usr/bin/ld: cannot find -lgcc /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/7.3.0/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: cannot find -lgcc_s /usr/bin/ld: cannot find crtn.o: No such file or directory collect2: error: ld returned 1 exit status configure: error: I suspect your system does not have 32-bit development libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.
11-20
[main] 正在配置项目: Fast-DDS [driver] 删除 /home/leo/work/fastdds/Fast-DDS/build/CMakeCache.txt [driver] 删除 /home/leo/work/fastdds/Fast-DDS/build/CMakeFiles [proc] 正在执行命令: /usr/bin/cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=/home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-gcc -DCMAKE_CXX_COMPILER:FILEPATH=/home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-g++ --no-warn-unused-cli -S /home/leo/work/fastdds/Fast-DDS -B /home/leo/work/fastdds/Fast-DDS/build -G Ninja [cmake] Not searching for unused variables given on the command line. [cmake] -- The C compiler identification is GNU 13.3.0 [cmake] -- The CXX compiler identification is GNU 13.3.0 [cmake] -- Detecting C compiler ABI info [cmake] -- Detecting C compiler ABI info - failed [cmake] -- Check for working C compiler: /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-gcc [cmake] -- Check for working C compiler: /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-gcc - broken [cmake] CMake Error at /usr/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake:69 (message): [cmake] The C compiler [cmake] [cmake] "/home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-gcc" [cmake] [cmake] is not able to compile a simple test program. [cmake] [cmake] It fails with the following output: [cmake] [cmake] Change Dir: /home/leo/work/fastdds/Fast-DDS/build/CMakeFiles/CMakeTmp [cmake] [cmake] Run Build Command(s):/usr/bin/ninja cmTC_2992e && [1/2] Building C object CMakeFiles/cmTC_2992e.dir/testCCompiler.c.o [cmake] [2/2] Linking C executable cmTC_2992e [cmake] FAILED: cmTC_2992e [cmake] : && /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-gcc CMakeFiles/cmTC_2992e.dir/testCCompiler.c.o -o cmTC_2992e && : [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find Scrt1.o: No such file or directory [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find crti.o: No such file or directory [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find crtbeginS.o: No such file or directory [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find -lgcc: No such file or directory [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find -lgcc_s: No such file or directory [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find -lc: No such file or directory [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find -lgcc: No such file or directory [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find -lgcc_s: No such file or directory [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find crtendS.o: No such file or directory [cmake] /home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/libexec/aarch64-qcom-linux/gcc/aarch64-qcom-linux/13.3.0/ld: cannot find crtn.o: No such file or directory [cmake] collect2: error: ld returned 1 exit status [cmake] ninja: build stopped: subcommand failed. [cmake] [cmake] [cmake] [cmake] [cmake] [cmake] CMake will not be able to correctly generate this project. [cmake] Call Stack (most recent call first): [cmake] CMakeLists.txt:32 (project) [cmake] [cmake] [cmake] -- Configuring incomplete, errors occurred! [cmake] See also "/home/leo/work/fastdds/Fast-DDS/build/CMakeFiles/CMakeOutput.log". [cmake] See also "/home/leo/work/fastdds/Fast-DDS/build/CMakeFiles/CMakeError.log". [proc] 命令“/usr/bin/cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=/home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-gcc -DCMAKE_CXX_COMPILER:FILEPATH=/home/leo/9075/X86/target/qcs9075-rb8-core-kit/qirpsdk_artifacts/qcs9075-rb8-core-kit/qirp-sdk/toolchain/install_dir/sysroots/x86_64-qcomsdk-linux/usr/bin/aarch64-qcom-linux/aarch64-qcom-linux-g++ --no-warn-unused-cli -S /home/leo/work/fastdds/Fast-DDS -B /home/leo/work/fastdds/Fast-DDS/build -G Ninja”已退出,代码为 1 [proc] 命令: aarch64-qcom-linux-gcc -v 失败,出现错误: Error: spawn aarch64-qcom-linux-gcc ENOENT [proc] 命令: aarch64-qcom-linux-g++ -v 失败,出现错误: Error: spawn aarch64-qcom-linux-g++ ENOENT
最新发布
12-10
make: Circular mod_prec.o <- mod_prec.o dependency dropped. gfortran -O3 -ffixed-line-length-none -ffree-line-length-0 -fallow-argument-mismatch func_pointer.o mod_prec.o sinter.o mod_types.o mod_time.o mod_main.o mod_spherical.o mod_utils.o mod_clock.o eqs_of_state.o mod_interp.o mod_par.o mod_par_special.o mod_ncll.o mod_nctools.o mod_wd.o mod_sng.o mod_heatflux.o mod_solar.o mod_bulk.o mod_input.o mod_force.o mod_obcs.o mod_petsc.o mod_semi_implicit.o mod_non_hydro.o mod_set_time.o ice_kinds_mod.o ice_model_size.o ice_domain.o ice_constants.o ice_fileunits.o ice_state.o ice_work.o ice_grid.o ice_albedo.o ice_calendar.o ice_flux.o ice_flux_in.o ice_itd.o ice_mechred.o ice_itd_linear.o ice_scaling.o ice_atmo.o ice_ocean.o ice_therm_vertical.o ice_init.o ice_therm_itd.o mod_ice2d.o mod_ice.o mod_startup.o mod_wqm.o mod_ncdio.o mod_setup.o mod_newinp.o particle.o linklist.o mod_lag.o mod_northpole.o mod_pwp.o mod_dye.o mod_optimal_interpolation.o mod_report.o mod_probe.o mod_gotm.o mod_balance_2d.o mod_tridiag.o mod_scal.o mod_meanflow.o mod_obcs2.o mod_obcs3.o mod_sed.o mod_enkf.o mod_etkf.o mod_rrk.o mod_rrkf_obs.o mod_rrkassim.o mod_enkf_ncd.o enkf_ncdio.o mod_enkf_obs.o mod_enkfassim.o mod_assim.o mod_nesting.o mod_visit.o mod_plbc.o mod_dam.o mod_station_timeseries.o mod_sparse_timeseries.o mod_boundschk.o mod_esmf_nesting.o mod_cstms_vars.o mod_flocmod.o mod_sed_cstms.o mod_fluid_mud.o mod_tvd.o mod_mld_rho.o mod_vegetation.o mod_heatflux_sediment.o mod_vector_projection.o mod_main_wave.o swmod1.o swmod2.o swmod3.o mod_action_im.o mod_action_ex.o mod_wavesetup.o mod_wave_current_interaction.o mod_bbl.o fvcom.o genmap.o tge.o longshore_flow.o cell_area.o open_all.o load_grid.o allocate_all.o setup_domain.o genmap_obc.o genmap_lsf.o print_vals.o coords_n_const.o shape_coef_gcn.o shape_coef_gcy.o depth_grad.o grid_metrics.o cntrl_prmtrs.o init_sed.o internal_step.o bcond_gcn.o bcond_gcy.o adjust2d3d.o brough.o advection_edge_gcn.o advection_edge_gcy.o ghostuv.o advave_edge_gcn.o advave_edge_gcy.o phy_baropg.o baropg.o external_step.o extel_edge.o extuv_edge.o depth_check.o vertvl_edge.o adv_uv_edge_gcn.o adv_uv_edge_gcy.o vdif_uv.o extelpf_edge.o wreal.o viscofh.o adv_q.o fct_q2.o fct_q2l.o vdif_q.o adv_t.o adv_s.o fct_t.o vdif_ts.o fct_s.o bcond_ts.o adjust_ts.o conv_over.o visitsim.o startup_type.o edge_len.o adcor.o icing.o rho_pmean.o calc_vort.o namelist.o nh_set_nesting.o coare26z.o coare40vn.o adv_uv_edge_gcn_rk.o adv_uv_edge_gcy_rk.o adv_t_rk.o adv_s_rk.o adv_q_rk.o mod_bio_3D.o mod_onedtide.o ocpmix.o ocpcre.o ocpids.o swanpre1.o swanpre2.o swanser.o swanmain.o swancom1.o swancom2.o swancom3.o swancom4.o swancom5.o w3part.o -L/usr/local/lib -lmetis -lnetcdff -lnetcdf -L/home/fvcom/FVCOM-5.1.0/src/libs/install/lib -ljulian -Wl,-rpath,/home/fvcom/FVCOM-5.1.0/petsc/arch-linux-c-debug/lib -L/home/fvcom/FVCOM-5.1.0/petsc/arch-linux-c-debug/lib -Wl,-rpath,/usr/lib/x86_64-linux-gnu/openmpi/lib/fortran/gfortran -L/usr/lib/x86_64-linux-gnu/openmpi/lib/fortran/gfortran -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11 -lpetsc -lHYPRE -lflapack -lfblas -lm -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lopen-rte -lopen-pal -lhwloc -levent_core -levent_pthreads -lgfortran -lm -lz -lgfortran -lm -lgfortran -lgcc_s -lquadmath -lstdc++ -lquadmath -o fvcom /usr/bin/ld: mod_par.o: in function `__mod_par_MOD_domdec': mod_par.f90:(.text+0x667aa): undefined reference to `partition_' collect2: error: ld returned 1 exit status make: *** [makefile:135: fvcom] Error 1
09-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值