C++ 从单独的文件夹在SUSE上运行GCC

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

我在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/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
并在此处发布输出。