草庐IT

ld-preload

全部标签

linux - 'collect2: ld returned 1 exit status '怎么解决?

当我在linux中构建我的源代码时,我遇到了类似这样的错误qstring.cpp:(.text+0x2c01):undefinedreferenceto`terminate(void)'collect2:ldreturned1exitstatus如何解决这个问题? 最佳答案 terminate是在C++标准库中定义的,因此请确保将其链接到其中。假设您正在使用gcc进行编译,则应使用g++编译源代码的可执行文件,不是gcc可执行文件:g++source.cc-ooutput当作为g++执行时,链接器会自动为您链接C++标准库(libs

linux - Linux内核编译时输出的CC、LD、CC[M]等代码是什么?

在从头开始编译Linux时,我发现编译时出现了编译代码。例如CC文件名、LD文件名、CC[M]文件名。这些代码是什么意思? 最佳答案 不同的标记说明如下[CC]-将C文件编译成指定的目标文件。目标文件包含该.c文件的体系结构汇编程序代码。因为它也可能引用其范围之外的部分。例如在另一个.c文件中调用另一个函数。函数调用在目标文件中保持打开状态,稍后由链接器包含。因此[LD]是将编译对象链接在一起的过程,并连接编译器未打开的函数调用。然而,许多部分被链接在一起作为内核的核心部分,而有些部分被排除在外。因此你会看到[CC(M)]用于编译为

linux - Linux内核编译时输出的CC、LD、CC[M]等代码是什么?

在从头开始编译Linux时,我发现编译时出现了编译代码。例如CC文件名、LD文件名、CC[M]文件名。这些代码是什么意思? 最佳答案 不同的标记说明如下[CC]-将C文件编译成指定的目标文件。目标文件包含该.c文件的体系结构汇编程序代码。因为它也可能引用其范围之外的部分。例如在另一个.c文件中调用另一个函数。函数调用在目标文件中保持打开状态,稍后由链接器包含。因此[LD]是将编译对象链接在一起的过程,并连接编译器未打开的函数调用。然而,许多部分被链接在一起作为内核的核心部分,而有些部分被排除在外。因此你会看到[CC(M)]用于编译为

linux -/usr/bin/ld : cannot find -lcurl

我正在尝试在Ubuntu10.10上安装ruby​​gemforcurl(curb),但在安装过程中,出现错误:/usr/bin/ld:cannotfind-lcurl但是安装了curl!apt-getinstallcurl说我有最新版本。也没有curl-dev。我总是遇到这些类型的错误,使用curl、使用libxml、使用readline,我不知道发生了什么。我安装的Ubuntu出了点问题,但我不知道是什么,我不知道去哪里查看,我不知道该用谷歌搜索什么,我也不知道如何修复它。我们将不胜感激。编辑:这是在我的libcurl的/usr/lib目录中:lrwxrwxrwx1rootroot

linux -/usr/bin/ld : cannot find -lcurl

我正在尝试在Ubuntu10.10上安装ruby​​gemforcurl(curb),但在安装过程中,出现错误:/usr/bin/ld:cannotfind-lcurl但是安装了curl!apt-getinstallcurl说我有最新版本。也没有curl-dev。我总是遇到这些类型的错误,使用curl、使用libxml、使用readline,我不知道发生了什么。我安装的Ubuntu出了点问题,但我不知道是什么,我不知道去哪里查看,我不知道该用谷歌搜索什么,我也不知道如何修复它。我们将不胜感激。编辑:这是在我的libcurl的/usr/lib目录中:lrwxrwxrwx1rootroot

c - 如何将 2 个部分放入 1 个部分(使用 ld 脚本)

我有以下链接描述文件:SECTIONS{.arora_exec_free_space4399531:{*(.text)*(.rodata)*(.data.rel.ro.local)}.arora_data_free_space(ADDR(.arora_exec_free_space)+SIZEOF(.arora_exec_free_space)):AT(7592352){*(.data)*(.bss)*(.got)}}当我编译我的程序时,这两个部分(exec和数据)位于不同的LOAD段中。我想把这两个部分(.arora_data_free_space和.arora_exec_free_

c - 如何将 2 个部分放入 1 个部分(使用 ld 脚本)

我有以下链接描述文件:SECTIONS{.arora_exec_free_space4399531:{*(.text)*(.rodata)*(.data.rel.ro.local)}.arora_data_free_space(ADDR(.arora_exec_free_space)+SIZEOF(.arora_exec_free_space)):AT(7592352){*(.data)*(.bss)*(.got)}}当我编译我的程序时,这两个部分(exec和数据)位于不同的LOAD段中。我想把这两个部分(.arora_data_free_space和.arora_exec_free_

linux - LD_LIBRARY_PATH 似乎不起作用

我正在尝试编译一个测试文件:gcc-otesttest.c-lg2c但是我得到了错误:/usr/bin/ld:cannotfind-lg2c如果我使用:gcc-otesttest.c-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6-lg2c然后它工作正常。所以我添加了这样的路径:LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/3.4.6:$LD_LIBRARY_PATH当我使用$LD_LIBRARY_PATH时,它列在那里,但是:gcc-otesttest.c-lg2c还是不行,报同样的错误,我不明白为什

linux - LD_LIBRARY_PATH 似乎不起作用

我正在尝试编译一个测试文件:gcc-otesttest.c-lg2c但是我得到了错误:/usr/bin/ld:cannotfind-lg2c如果我使用:gcc-otesttest.c-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6-lg2c然后它工作正常。所以我添加了这样的路径:LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/3.4.6:$LD_LIBRARY_PATH当我使用$LD_LIBRARY_PATH时,它列在那里,但是:gcc-otesttest.c-lg2c还是不行,报同样的错误,我不明白为什

linux - 为什么我不能用 LD_LIBRARY_PATH 覆盖动态库的搜索路径?

编辑:我解决了这个问题,解决方案如下。我正在专用于科学计算的共享计算集群中构建代码,因此我只能控制我的主文件夹中的文件。虽然我以fftw为例,但我想了解具体原因,为什么我尝试设置LD_LIBRARY_PATH不起作用。我像这样在我的主文件夹中构建fftw和fftw_mpi库./configure--prefix=$HOME/install/fftw--enable-mpi--enable-sharedmakeinstall构建良好,但在install/fftw/lib中,我发现新构建的libfftw3_mpi.so链接到错误版本的fftw库。$lddlibfftw3_mpi.so|gr