I think you need -Wl,-rpath=`pwd`/libguile/.libs

On 01/22/2018 03:36 AM, Chaos Eternal wrote:
 gcc  -pthread -I.  -Wl,-rpath -lguile-2.2  -lgc test.c

On Mon, Jan 22, 2018 at 7:30 PM 陶青云 <qingyun....@tophant.com <mailto:qingyun....@tophant.com>> wrote:

    some result

    ```
    ~/code/guile-2.2
    $ LDFLAGS=-Wl,-rpath LD_LIBRARY_PATH=./libguile/.libs gcc 
    -pthread -I.  -lguile-2.2  -lgc test.c
    ~/code/guile-2.2
    $ ldd ./a.out
    linux-vdso.so.1 (0x00007ffc441a0000)
    libguile-2.2.so.1 => /usr/lib/libguile-2.2.so.1 (0x00007f3cfb519000)
    libgc.so.1 => /usr/lib/libgc.so.1 (0x00007f3cfb2af000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f3cfb091000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007f3cfacd9000)
    libffi.so.6 => /usr/lib/libffi.so.6 (0x00007f3cfaad0000)
    libunistring.so.2 => /usr/lib/libunistring.so.2 (0x00007f3cfa75f000)
    libgmp.so.10 => /usr/lib/libgmp.so.10 (0x00007f3cfa4cc000)
    libltdl.so.7 => /usr/lib/libltdl.so.7 (0x00007f3cfa2c2000)
    libcrypt.so.1 => /usr/lib/libcrypt.so.1 (0x00007f3cfa08a000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007f3cf9d3e000)
    /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2
    (0x00007f3cfba49000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f3cf9b3a000)
    libatomic_ops.so.1 => /usr/lib/libatomic_ops.so.1 (0x00007f3cf9937000)
    ```
    ------------------ Original ------------------
    *From: * "Chaos Eternal"<eternalch...@shlug.org
    <mailto:eternalch...@shlug.org>>;
    *Date: * Mon, Jan 22, 2018 12:58 PM
    *To: * "Nala Ginrut"<nalagin...@gmail.com
    <mailto:nalagin...@gmail.com>>;
    *Cc: * "陶青云"<qingyun....@tophant.com
    <mailto:qingyun....@tophant.com>>;
    "guile-devel"<guile-devel@gnu.org <mailto:guile-devel@gnu.org>>;
    *Subject: * Re: Question: link to wrong library

    or try this
    LDFLAGS=-Wl,-rpath


    On Mon, Jan 22, 2018, 09:08 Nala Ginrut <nalagin...@gmail.com
    <mailto:nalagin...@gmail.com>> wrote:

        I think you may need LD_LIBRARY_PATH

        2018年1月21日 23:46,"陶青云" <qingyun....@tophant.com
        <mailto:qingyun....@tophant.com>>写道:

            Hi. I'm new to guile.  I compiled it from source without
            `make install`.

            I write a simple C file and use the flowing command to
            compile it.
                `gcc -pthread -I. -L ./libguile/.libs -lguile-2.2 
            -lgc test.c`
            it successed. but the a.out is always link to my system
            guile library.
               $ ldd ./a.out
            linux-vdso.so.1 (0x00007fffc259b000)
            libguile-2.2.so.1 => /usr/lib/libguile-2.2.so.1
            (0x00007fa90f9fe000)
            libgc.so.1 => /usr/lib/libgc.so.1 (0x00007fa90f794000)


            even I do the flowing:
            $ cp libguile/.libs/libguile-2.2.so.1.3.0
            libguile/.libs/libguile-2.5.so <http://libguile-2.5.so>

            $ gcc -pthread -I. -L ./libguile/.libs -lguile-2.5  -lgc
            test.c  # it successed

            $ ldd ./a.out
            linux-vdso.so.1 (0x00007ffd283e0000)
            libguile-2.2.so.1 => /usr/lib/libguile-2.2.so.1
            (0x00007f83c71cc000)
            libgc.so.1 => /usr/lib/libgc.so.1 (0x00007f83c6f62000)


            Could someone give me some tips.  Thanks.


Reply via email to