Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C ld:fatal:在solaris上编译libssh2时,针对可分配但不可写的节保留重定位_C_Solaris_Libssh2 - Fatal编程技术网

C ld:fatal:在solaris上编译libssh2时,针对可分配但不可写的节保留重定位

C ld:fatal:在solaris上编译libssh2时,针对可分配但不可写的节保留重定位,c,solaris,libssh2,C,Solaris,Libssh2,我正在Solaris 10机器上编译1.4.2版 它通过编译获得了大部分信息,然后我得到: libtool: link: gcc -shared -fPIC -DPIC -Wl,-z -Wl,text -Wl,-M -Wl,.libs/libssh2.so.1.0.1.exp -Wl,-h -Wl,libssh2.so.1 -o .libs/libssh2.so.1.0.1 .libs/channel.o .libs/comp.o .libs/crypt.o .libs/hostkey.o

我正在Solaris 10机器上编译1.4.2版

它通过编译获得了大部分信息,然后我得到:

libtool: link:  gcc -shared  -fPIC -DPIC -Wl,-z -Wl,text -Wl,-M -Wl,.libs/libssh2.so.1.0.1.exp -Wl,-h -Wl,libssh2.so.1 -o .libs/libssh2.so.1.0.1  .libs/channel.o .libs/comp.o .libs/crypt.o .libs/hostkey.o .libs/kex.o .libs/mac.o .libs/misc.o .libs/packet.o .libs/publickey.o .libs/scp.o .libs/session.o .libs/sftp.o .libs/userauth.o .libs/transport.o .libs/version.o .libs/knownhost.o .libs/agent.o .libs/openssl.o .libs/libgcrypt.o .libs/pem.o .libs/keepalive.o .libs/global.o   -L/export/home/ixbuild/local//lib -lssl -lcrypto -lz -lnsl -lsocket -lc  -O2
Text relocation remains                         referenced
    against symbol                  offset      in file
<unknown>                           0x10        /export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
<unknown>                           0x24        /export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
CBIGNUM_it                          0x28        /export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
<unknown>                           0x38        /export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
CBIGNUM_it                          0x3c        /export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
... many similar lines ...
ld: fatal: relocations remain against allocatable but non-writable sections
libtool:link:gcc-shared-fPIC-DPIC-Wl,-z-Wl,text-Wl,-M-Wl,.libs/libssh2.so.1.0.1.exp-Wl,-h-Wl,libssh2.so.1-o.libs/libssh2.so.1.libs/channel.o.libs/comp.o.libs/crypt.o.libs/hostkey.o.libs/mac.o.libs/misc.o.libs/packet.o.libs/publickey.o.libs/scp.o.libs/session.o.libs/sftp.o.libs/userauth.o.libs/transport.o.libs/version.o.libs/knowost.o.libs/nohost.o.libs/packet.ssl/opengco.libs/libs/libs/lib.s/lib.s/libs/libs/libs/lib.s/libs/lib.s/s/s/lib.s/s/s/s/s/.libs/keepalive.o.libs/global.o-L/export/home/ixbuild/local//lib-lssl-lcrypto-lz-lnsl-lsocket-lc-O2
文本重新定位仍被引用
针对文件中的符号偏移量
0x10/export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
0x24/export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
CBIGNUM_it 0x28/export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
0x38/export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
CBIGNUM_it 0x3c/export/home/ixbuild/local//lib/libcrypto.a(dsa_asn1.o)
... 许多相似的线路。。。
ld:fatal:针对可分配但不可写的节保留重新定位
在谷歌上搜索,我发现很多关于不使用
-fPIC
编译的错误的引用,但是这个标志已经被使用了

奇怪的是,当我第一次安装这台机器时,它工作得很好。当时我正在使用libssh2-1.3.0


更新:@jww建议这是的副本,表示问题缺少
-fPIC
标志。正如问题中已经指出的,我已经检查了这个,并且正在使用
-fPIC
。请查看下面的答案,了解我的实际解决方案。

至少在我的案例中,这是因为尝试使用gcc编译新版本的libssh2,并链接到以前使用Solaris cc编译的openssl库

通过添加CC环境变量强制
configure
使用Solaris CC命令(如下所示),我可以使其编译:

CC="/opt/solstudio12.2/bin/cc" ./configure --prefix=/export/home/ixbuild/local --disable-static
查看我以前执行的安装中的注释,我以前不需要这样做,因此配置脚本可能已更改为更喜欢gcc(如果有),或者环境已更改(我不完全确定gcc是否在我以前构建时的路径中)。

可能重复