我正在尝试在我的源代码上运行go build
。
go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: cannot find -lgdal
collect2: error: ld returned 1 exit status
我的LD_LIBRARY_PATH
变量包含 /home/fzd/project/lib64
,即libgdal.so
文件的目录路径。我的PKG_CONFIG_PATH
包含.pc
文件的目录路径,其中包含以下内容:
prefix=/home/fzd/project
exec_prefix=${prefix}
libdir=${prefix}/lib64
deplibdir=${prefix}/lib64
includedir=${prefix}/include
Name: myLibs
Description: Libs
Requires:
Version: v1.0
Libs: -L${deplibdir} -lgdal
Cflags: -I${includedir}
我不知道要检查哪个变量。一切似乎都很好,有趣的是,当我在其他地方克隆我的存储库时,我没有问题(相同的LD_LIBRARY_PATH
等(
有没有人知道我可以检查什么?
我在 CentOS7.6 上使用 go1.11.1。
以下是我为解决此问题所做的一些事情:
-
rm -rf ~/.cache/go-build
:这包含一些构建工件 -
rm -rf ${MyProject}/{bin,pkg}
: 出于同样的原因
尝试yum install glibc-static.x86_64 -y
我遇到了这样的错误
/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: cannot find -ldl
/usr/bin/ld: cannot find -lpthread
和 glibc-static lib 修复它。
以下步骤对我有用:
yum install glibc-static.x86_64 libstdc++-static -y
然后删除上次构建缓存
rm -rf ~/.cache/go-build
然后导出 CXX 标志
export CXXFLAGS="-stdlib=libstdc++" CC=/usr/bin/gcc CXX=/usr/bin/g++
<</div>
div class="one_answers"> 试试这个:
yum install binutils