gcc 의 dll tool 과 dllwrap 도구

2273 단어 tool
다음으로 이동:http://hi.baidu.com/oofy/blog/item/fa788a23ebdb4947ad34dede.html
줄곧 이 두 가지 물건 을 이해 하지 못 해서 오늘 시간 을 써 보 았 다.
총 결 은 다음 과 같다.
mingw 에서 dll 을 만 드 는 방법 은 두 가지 가 있 습 니 다. 하 나 는 사용 입 니 다.    gcc -shared ...
둘 째 는 dllwrap...
dllwrap 은 도구 호출 입 니 다. gcc - shared 는 직접 생 성 됩 니 다.
dllwrap 은 상대 적 으로 유연 합 니 다. 하지만 gcc - shared 는 기본적으로 사용 하기에 충분 합 니 다.
dll tool 은 def, exp, lib 파일 을 만 드 는 도구 입 니 다.
이것 은 obj 파일 (기본 함수 가 declspec (dllexport) 로 표시 되 거나 def 파일 을 기반 으로 exp 와 lib 파일 을 생 성 할 수 있 습 니 다.
전자 (exp 파일, 'edata 세그먼트 포함) 는 dll, 후자 (lib 파일,. idea 세그먼트 포함) 는 dll 을 사용 하 는 데 사 용 됩 니 다.
dll tool 에서 DLLNAME 인 자 는 def 파일 의 library 이름과 lib 의 dll 이름 을 만 드 는 데 만 사 용 됩 니 다.
그 자체 에 dll 정보 가 필요 하지 않 습 니 다.
몇 가지 주요 참고 문서:
gcc - shared 를 사용 하여 dll 을 만 드 는 것 도 실험의 좋 은 기초 입 니 다.
http://www.adp-gmbh.ch/win/misc/mingw/dll.html
gnu - binutils manual, as / ar / ranlib / dlltool / ld 는 모두 그의 일부분 입 니 다.
gcc - shared 와 관련 된 몇 가지 인자:
--add-stdcall-alias                  Export symbols with and without @nn
--kill-at    Remove @nn from exported symbols
--out-implib <file>        Generate import library
--output-def <file>               Generate a .DEF file for the built DLL

dlltool
-z --output-def <deffile> Name of .def file to be created.
--export-all-symbols Export all symbols to .def
--no-export-all-symbols Only export listed symbols
--exclude-symbols <list> Don't export <list>
--no-default-excludes Clear default exclude symbols
-b --base-file <basefile> Read linker generated base file.
-x --no-idata4 Don't generate idata$4 section.
-c --no-idata5 Don't generate idata$5 section.
-U --add-underscore Add underscores to symbols in interface library.
-k --kill-at Kill @<n> from exported names.
-A --add-stdcall-alias Add aliases without @<n>.
-p --ext-prefix-alias <prefix> Add aliases with <prefix>.

msvc 와 gcc 에서 생 성stdcall 호출 dll
http://www.geocities.com/yongweiwu/stdcall.htm
그리고 직접 실험 하 는 거 야.

좋은 웹페이지 즐겨찾기