Unix cc 컴파일러 옵션 정리

|
Shared and static libraries information

Solaris
Version [2.8]
1 compiler flag (position independent code) -KPIC, -Kpic
2a shared library creation flag -G
2b shared library creation (C++) CC -G -o
2c static archiver (C++) CC -xar -o
3a library name -h name
3b file extension .so
4 executable link options -Bdynamic
-Lpath -lname
5a runtime path specification -R <pathlist>
5b Does not build the path for shared libraries into the executable -norunpath
6 controlling symbols -z defs/ nodefs/ muldefs

Solaris
7 exports file/link option
(see notes)
using a script file (see "man ld")
8 hiding symbols using a script file (see "man ld") (see this article)
9 runtime library path LD_LIBRARY_PATH
LD_LIBRARY_PATH_64
10 symbol binding -Bsymbolic
11 runtime debugging (c.f. man ld.so.1)
LD_BIND_NOW
LD_DEBUG
ld -D help
12 runtime preload LD_PRELOAD
13 loader ld.so
14 runtime performance xxxx

Solaris
15 versioning using a script file (see "man ld")
-M mapfile
16 entry points xxxx
17 dynamic loading /
dynamic symbol access
dlopen / dlsym
18 utilities ldd, elfdump, pvs, dumpstabs (compilers V.6), crle (Solaris>=8)
19 documentation man: ld, ld.so.1, ldd, pvs

Solaris
And