나는 필사적으로 DLL로 C 파일의 무리를 컴파일하려고합니다. 나는 또한이 Makefile.am
, configure.ac
, autogen.sh
. 이미 Mingw와 Cygwin을 설치했습니다 (둘 다 설치하는 것이 좋은 생각은 아닙니다). 나는 또한로 설정 PATH
했습니다 Mingw\bin
.
정확히 무엇을해야하나요? 어떤 make / config 파일로 시작할까요? 무엇을 해야할지 아는 사람에게는 간단한 작업처럼 보입니다.
첫째, Cygwin을 피하십시오. MINGW면 충분합니다.
DLL을 빌드하기 전에 MINGW 설치가 예상대로 작동하는지 확인하십시오 (간단한 "hello world"프로그램 시도).
간단한 C 파일을 컴파일하고 작업 실행 파일에 연결할 수 있는지 확인한 후 Windows 배치 파일을 사용하여 매우 간단한 방법을 사용해 볼 수 있습니다.
다음을 필요에 맞게 조정하십시오. 모든 C 파일이있는 동일한 디렉토리에 저장 한 다음 실행해야합니다. gcc
명령 줄에서 호출 할 수 있다고 가정합니다 (예 : GCC 실행 파일이 경로에 있어야 함).
@echo off
::
:: file "build.cmd"
::
setlocal
set CWARNS=-pedantic -Wall -Wextra ^
-Waggregate-return -Wbad-function-cast -Wcast-align -Wcast-qual ^
-Wdeclaration-after-statement -Wdisabled-optimization ^
-Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wshadow ^
-Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wunreachable-code
set CFLAGS=-O2
set COMPILE=gcc -c %CFLAGS% %CWARNS%
%COMPILE% file1.c
%COMPILE% file2.c
%COMPILE% file3.c
gcc -shared file1.o file2.o file3.o -o mydllname.dll
작동이 보장되지는 않지만 프로젝트에 외부 종속성이없고 file*.o
(소스를 컴파일 할 때 생성 된) 특정 순서로 링크 될 필요가없는 경우 충분합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다