C++ 从单独的文件夹在SUSE上运行GCC
我在SUSE 11.4中,没有root权限。我需要使用C++ 从单独的文件夹在SUSE上运行GCC,c++,gcc,rpm,suse,C++,Gcc,Rpm,Suse,我在SUSE 11.4中,没有root权限。我需要使用gcc,而不是系统附带的(4.3)。我想使用的(6.2)在不同的文件夹中分开:/path/to/gcc-6.2.0 为了避免将来可能出现的问题,我做了以下几点: export LD_LIBRARY_PATH=/lib:/lib64:/path/to/gcc-6.2.0/lib:/path/to/gcc-6.2.0/lib64:/usr/lib:/usr/lib64:$LD_LIBRARY_PATH /path/to/gcc-6.2.0/bi
gcc
,而不是系统附带的(4.3)。我想使用的(6.2)在不同的文件夹中分开:/path/to/gcc-6.2.0
为了避免将来可能出现的问题,我做了以下几点:
export LD_LIBRARY_PATH=/lib:/lib64:/path/to/gcc-6.2.0/lib:/path/to/gcc-6.2.0/lib64:/usr/lib:/usr/lib64:$LD_LIBRARY_PATH
/path/to/gcc-6.2.0/bin/g++ hello_world.cpp -o hw
在~
文件夹中,我创建了一个hello\u world.cpp
文件并运行了以下程序:
export LD_LIBRARY_PATH=/lib:/lib64:/path/to/gcc-6.2.0/lib:/path/to/gcc-6.2.0/lib64:/usr/lib:/usr/lib64:$LD_LIBRARY_PATH
/path/to/gcc-6.2.0/bin/g++ hello_world.cpp -o hw
然后我得到了这个错误:
/path/to/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/cc1plus: error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory
error: unpacking of archive failed on file /usr/lib/libgmp.so.10;5aa15ea0: cpio: symlink failed - Permission denied
然后,我去了libmpc.so.3
。我看到我依赖于libgmp.so.10
:我转到这里,用~
文件夹上的wget
下载.rpm
文件并运行以下命令:
rpm -ivh -r /home/unix/me/foo libgmp10-32bit-6.1.2-2.11.x86_64.rpm
出现以下错误:
error: Failed dependencies:
/bin/sh is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6 is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.0) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.1.3) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.3) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.3.4) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.4) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
libc.so.6(GLIBC_2.7) is needed by libgmp10-32bit-6.1.2-2.11.x86_64
我不知道为什么libc.so.6
出错,因为它在/usr/lib
文件夹中(在我对LD\u LIBRARY\u PATH
var执行的第一个导出命令中设置)。对于/bin/sh
错误,我运行/bin/sh
,设置导出SHELL=/bin/sh
,然后再次运行此命令(现在使用--nodeps
):
现在得到这个错误:
/path/to/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/cc1plus: error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory
error: unpacking of archive failed on file /usr/lib/libgmp.so.10;5aa15ea0: cpio: symlink failed - Permission denied
请注意,这里有一个权限被拒绝
,我想这是因为我无法在/usr/lib
文件夹中写入。可能正在更改此文件夹,或在其他位置解包。。。如果可能,怎么做
嗯,我完全迷路了。。。我对这一切都是新手
Q:我如何使用这个gcc-6.2.0
?
只需一个信息,
ldd
命令,位于cc1plus
:
linux-vdso.so.1 => (0x00007fff987bc000)
libmpc.so.3 => not found
libmpfr.so.4 => not found
libgmp.so.10 => not found
libdl.so.2 => /lib64/libdl.so.2 (0x00002b782f503000)
libstdc++.so.6 => /path/to/gcc-6.2.0/lib64/libstdc++.so.6 (0x00002b782f708000)
libm.so.6 => /lib64/libm.so.6 (0x00002b782fa91000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b782fd0a000)
libc.so.6 => /lib64/libc.so.6 (0x00002b782ff22000)
/lib64/ld-linux-x86-64.so.2 (0x00002b782f2e1000)
gcc-6.2.0/bin上的la
命令:
drwxr-xr-x 2 pbsadmin pbsusers 4096 Dec 15 2016 .
drwxr-xr-x 8 pbsadmin pbsusers 4096 Dec 15 2016 ..
-rwxr-xr-x 4 pbsadmin pbsusers 2868174 Dec 15 2016 c++
-rwxr-xr-x 1 pbsadmin pbsusers 2862280 Dec 15 2016 cpp
-rwxr-xr-x 4 pbsadmin pbsusers 2868174 Dec 15 2016 g++
-rwxr-xr-x 3 pbsadmin pbsusers 2859868 Dec 15 2016 gcc
-rwxr-xr-x 2 pbsadmin pbsusers 67083 Dec 15 2016 gcc-ar
-rwxr-xr-x 2 pbsadmin pbsusers 67067 Dec 15 2016 gcc-nm
-rwxr-xr-x 2 pbsadmin pbsusers 67087 Dec 15 2016 gcc-ranlib
-rwxr-xr-x 1 pbsadmin pbsusers 1666022 Dec 15 2016 gcov
-rwxr-xr-x 1 pbsadmin pbsusers 1673624 Dec 15 2016 gcov-tool
-rwxr-xr-x 4 pbsadmin pbsusers 2868174 Dec 15 2016 x86_64-pc-linux-gnu-c++
-rwxr-xr-x 4 pbsadmin pbsusers 2868174 Dec 15 2016 x86_64-pc-linux-gnu-g++
-rwxr-xr-x 3 pbsadmin pbsusers 2859868 Dec 15 2016 x86_64-pc-linux-gnu-gcc
-rwxr-xr-x 3 pbsadmin pbsusers 2859868 Dec 15 2016 x86_64-pc-linux-gnu-gcc-6.2.0
-rwxr-xr-x 2 pbsadmin pbsusers 67083 Dec 15 2016 x86_64-pc-linux-gnu-gcc-ar
-rwxr-xr-x 2 pbsadmin pbsusers 67067 Dec 15 2016 x86_64-pc-linux-gnu-gcc-nm
-rwxr-xr-x 2 pbsadmin pbsusers 67087 Dec 15 2016 x86_64-pc-linux-gnu-gcc-ranlib
我确实使用OpenSUSE,但很少使用RPM。也许这可以帮助你:
rpm -ivh -nodeps --prefix=/some/other/path/ libgmp10-32bit-6.1.2-2.11.x86_64.rpm
路径前面不需要
/path/to/gcc-6.2.0/bin/g++hello_world.cpp-o hw
注意第一个/
前面的
。否。此路径从根开始。如果我把
,它找不到g++
。对于我认为
是强制性的可执行文件,
意味着运行这个可执行文件,在这种情况下
并不意味着这个目录。嗯,当我在没有点的情况下运行时,可执行文件会运行。有了这个点,我就没有这样的文件或目录了;la
并在此处发布输出。