본문 바로가기

프로그램언어/C/C++

Compiler의 종류에 따른 옵션

아래 사이트에 정말 잘 정리 되어 있다.


http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html


Shared and static libraries information
LinuxSolarisHP-UXCompaq (Digital) Tru64AIXSGIWin32MacOS XVMSOS/390
Version[kernel 2.x, GCC 2.95.x and later] [2.8] [11] [4.x] [4.3 and later] [Irix 6.5] [NT 4] [10.x] [unmaintained] [unmaintained]
1compiler flag (position independent code)-fPIC -KPIC, -Kpic +z/+Z xxxx xxxx -KPIC (default) xxxx -fno-common xxxx -DLL
2ashared library creation flag-shared -G -b -shared -bM:SRE -shared link /DLL cc -bundle, -dynamiclib
libtool -dynamic
/SHARE xxxx
2bshared library creation (C++)g++ -fPIC -shared -o CC -G -o aCC -b -o cxx -shared -o xlC -G (or -qmkshrobj)
obsolete:/usr/vacpp/bin/makeC++SharedLib -G -o
(was in /usr/ibmcxx/bin or /usr/lpp/xlC/bin/)
CC -shared -o CL -LD -Fexxx.DLL ??
libtool -dynamic
?? ??
2cstatic archiver (C++)ar CC -xar -o ar ar ar CC -ar -o LIB (avoid link /lib that creates __impl symbols) ??
libtool -static
?? ??
3alibrary name(ld option) -soname name -h name (ld option) +h name (ld option) -soname name xxxx (ld option) -soname name /OUT:name -compatibility_version, -current_version /SHARE= xxxx
3bfile extension.so .so .sl .so .so (or .a) .so .DLL .dylib .EXE ??
4executable link options-Bdynamic
-Lpath -lname
-Bdynamic
-Lpath -lname
-a,shared
-Lpath -name
-no_archive
-Lpath -lname
-brtl
-bdynamic
-Lpath -lname
-Bdynamic,
-Lpath -lname
Controlled by .lib files ?? xxxx filename/SHAREABLE
5aruntime path specification-rpath <path> -R <pathlist> -Wl,+b <pathlist> -Wl,+s -rpath <path> -blibpath:<path>
(by default, it is set to the arguments of -L)
-rpath <path> /LIBPATH: -install_name <path> xxxx xxxx
5bDoes not build the path for shared libraries into the executabledefault -norunpath chatr +b disable <file> default -blibpath:/usr/lib:/lib default ?? ?? ?? ??
6controlling symbolsusing a script file (see "info ld") -z defs/ nodefs/ muldefs +v[no] shlibunsats -expect [error] _unresolved xxxx -ignore[no] _unresolved /FORCE: MULTIPLE [UNRESOLVED] ?? xxxx xxxx
LinuxSolarisHP-UXCompaq (Digital) Tru64AIXSGIWin32MacOS XVMSOS/390
7exports file/link option
(see notes)
using a script file (see "info ld") using a script file (see "man ld") +e,symname -exported_symbol .exp -exported_symbol
-exports_file filename
.def/__declspec(dllexport) -exported_symbols_list /SYMBOL_TABLE=(...) .x file/
#pragma export()
8hiding symbolsusing a script file: VERSION command (see "Version Script" section in "info ld") using a script file (see "man ld") (see thisarticle) -h symname -hidden_symbol, -hidden xxxx -hidden_symbol,
-hiddens_file filename
using a .def file -unexported_symbols_list xxxx xxxx
9runtime library pathLD_LIBRARY_PATH LD_LIBRARY_PATH
LD_LIBRARY_PATH_64
SHLIB_PATH
LD_LIBRARY_PATH (64 bits)
LD_LIBRARY_PATH LIBPATH LD_LIBRARY_PATH
LD_LIBRARYN32_PATH
LD_LIBRARY64_PATH
. and then PATH DYLD_LIBRARY_PATH
DYLD_FALLBACK_LIBRARY_PATH
SYS$SHARE LIBPATH
10symbol binding-Bsymbolic -Bsymbolic -Bsymbolic /immediate /deferred xxxx xxxx -Bsymbolic xxxx ?? xxxx xxxx
11runtime debugging(c.f. man ld.so)
LD_BIND_NOW
LD_TRACE_LOADED_OBJECTS
LD_DEBUG=help
ltrace
(c.f. man ld.so.1)
LD_BIND_NOW
LD_DEBUG
ld -D help
(c.f. man dld.sl)
_HP_DLDOPTS
(c.f. man loader)
LD_BIND_NOW
_RLD_ARGS
LDR_CNTRL (c.f. man rld)
LD_BIND_NOW
_RLD_PATH, _RLD_ARGS
xxxx DYLD_BIND_AT_LAUNCH
DYLD_PRINT_LIBRARIES
DYLD_PREBIND_DEBUG
xxxx xxxx
12runtime preloadLD_PRELOAD LD_PRELOAD LD_PRELOAD (probably HP-UX >= 11) _RLD_LIST "xxx.so:DEFAULT" xxxx _RLD_LIST "xxx.so:DEFAULT" ?? DYLD_INSERT_LIBRARIES ?? ??
13loaderld.so ld.so dld.sl loader xxxx rld xxxx dyld xxxx xxxx
14runtime performancexxxx xxxx fastbind tool -quickstart_info xxxx -quickstart_info /DELAYLOAD xxxx xxxx xxxx
LinuxSolarisHP-UXCompaq (Digital) Tru64AIXSGIWin32MacOS XVMSOS/390
15versioningusing a script file: VERSION command (see "info ld") using a script file (see "man ld")
-M mapfile
xxxx xxxx xxxx -set_version/-exact_version/
-ignore_version
/VERSION:major.minor ?? /GSMATCH= xxxx
16entry pointsxxxx xxxx xxxx xxxx xxxx xxxx DllMain xxxx xxxx xxxx
17dynamic loading /
dynamic symbol access
dlopen / dlsym dlopen / dlsym shl_load / shl_findsym
(64 bits) dlopen / dlsym
dlopen / dlsym loadquery/loadbind
(AIX 4.2) dlopen / dlsym
dlopen / dlsym LoadLibrary / GetProcAddress "man 3 dyld" lib$find_image_symbol dllload / dllqueryfn/ dllqueryvar
18utilitiesldd, ldconfig, objdump, ltrace, readelf ldd, elfdump, pvs, dumpstabs (compilers V.6), crle (Solaris>=8) chatr
odump
ldd, elfdump (HP-UX >= 11)
odump -Dl dump -H
ldd (in AIX tools)
elfdump -Dl
pldd
ldd (IRIX >= 6.5)
DUMPBIN, depends, EXEHDR, link -dump otool ANALYSE/IMAGE xxxx
19documentationman: ld, ld.so, ldd
info: ld, gcc, binutil
HOWTO: ELF-HOWTO, GCC-HOWTO
man: ld, ld.so.1, ldd, pvs man: ld, dld.sl, chatr man: ld, loader, odump man: ld, dump man: dso, ld, rld, elfdump, ldd MSDN man: ld, libtool, dyld, otool ?? ??
LinuxSolarisHP-UXCompaq (Digital) Tru64AIXSGIWin32MacOS XVMSOS/390

 

'프로그램언어 > C/C++' 카테고리의 다른 글

[AIX]dynamic library & static library  (0) 2012.03.24
POSIX 와 Thread-safety  (0) 2012.03.24
GCC 사용법  (0) 2012.03.24
xlC 컴파일 옵션 - AIX  (0) 2012.03.24
GCC Compile 옵션 및 과정  (0) 2012.03.24