我知道C库定位在
/lib/libc.so.6 or /lib64/libc.so.6, but this file
is sometimes a symbolic link to a file of another name, such as /lib/
libc-2.15.so.
但是,我可以找到它
me@host:~$ ls /lib
apparmor cpp hdparm klibc-wBFLvVtxy4xJqEadIBJMa78iJz8.so modprobe.d recovery-mode udev
brltty crda
我有些怀疑:
用例:
A static library containing a global variable, static variable, a function
and a class defined
A shared library uses these and hence they are part of the same.
A executable program also uses the same and they are part of the same.
The executable loads the shared library
我运行以下代码
./gcc -o test -ansi test.c -L/<other dirs>/gcc/arm-linux-androideabi/4.4.3/include-fixed/
我得到..。
test.c:3:18: error: no include path in which to search for stdio.h
test.c: In function 'main':
test.c:7: warning: incompatible implicit declaration of built-in function 'printf&
在此之后,我尝试编译stdlib.so以将其他代码与其链接。不幸的是,stdlib.so本身是一个动态链接的二进制:
# ldd /usr/local/go/pkg/linux_amd64_dynlink/libstd.so
ldd: warning: you do not have execution permission for `/usr/local/go/pkg
/linux_amd64_dynlink/libstd.so'
linux-vdso.so.1 (0x00007ffd611d7000)
libpthread.so.0 => /lib64/lib
我有问题链接到一个Haskell图书馆,我们写的。它会在Ubuntu上出错,但在Arch上不会出错。我们在Ubuntu上得到的错误是:
/usr/bin/ld: warning: libHSdeepseq-1.3.0.0-ghc7.4.1.so, needed by /usr/lib/ghc/containers-0.4.2.1/libHScontainers-0.4.2.1-ghc7.4.1.so, not found (try using -rpath or -rpath-link) /usr/lib/ghc/containers-0.4.2.1/libHScontainers-0.4.2