mingw 컴파일 환경에서 dll에 버전 정보 추가
2850 단어 【공사 프로젝트 경험】스크립트 및 도구 컴파일
1. 가설에 obj가 있다.c 파일, 내용은 다음과 같습니다.
#include
int add(int a,int b)
{
return a+b;
}
void main()
{
printf("******
");
}
2. dll에 버전 정보를 추가하는 것은 사실 자원 파일, 예를 들어obj를 이용한 것이다.rc
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGS 0x1L
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080904E4"
BEGIN
VALUE "CompanyName", "My Company Name"
VALUE "FileDescription", "My excellent application"
VALUE "FileVersion", "6000"
VALUE "InternalName", "my_app"
VALUE "LegalCopyright", "My Name"
VALUE "OriginalFilename", "my_app.exe"
VALUE "ProductName", "My App"
VALUE "ProductVersion", "6000"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x809, 1252
END
END
3、어떻게 사용합니까?
(1), cmd를 열고 다음을 입력합니다.
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"
call "C:\MinGW\msys\1.0\msys.bat"
(2),cd에서obj까지.c obj.rc 디렉토리
실행:
gcc -c obj.c -o obj.o
windres obj.rc -O coff -o obj.res
gcc -o obj obj.o obj.res
(3)그리고 obj 버전 정보를 오른쪽 단추로 볼 수 있습니다
또한: cl.exe link도 사용할 수 있습니다.exe
cl -c obj.c
windres obj.rc -O coff -o obj.res
link obj.obj obj.res
주의: 상기 설명은 32비트의 dll을 컴파일하기 위한 것입니다. 64비트의 dll을 컴파일하려면 아래 코드를 참고하십시오: windres가 rc로 바뀐 것은 windres가 설치된 Mingw 버전과 관련이 있기 때문입니다. 만약mingw가 32비트라면 windres도 32비트입니다. 64비트 라이브러리를 컴파일하기 어려우므로 rc로 바꾸어 사용하십시오.
cl -DWIN64 -c obj.c -Foobj
rc -DWIN64 -fo obj.res obj.rc
link obj.obj obj.res
C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.17514_none_ba1c770af0b2031b cvtres.exe C:\Program Files\Microsoft Visual Studio 10.0\VC\bin , 。
시나리오 2:
C:\Windows\Microsoft.NET\Framework\v4.0.30319 cvtres.exe VS \VC\bin
참조 사이트 주소:http://www.cnblogs.com/newpanderking/p/4003228.html
참조 사이트 주소:http://blog.sina.com.cn/s/blog_68d0c6c30100kzv6.html
참조 사이트 주소:http://blog.163.com/yuyang_tech/blog/static/2160500832013118112049372/
참조 사이트 주소:http://blog.csdn.net/cruise_h/article/details/29218407