使用Mingw将一堆C文件编译成DLL的步骤



I拼命地试图将一堆C文件编译到DLL中。我还有Makefile.amconfigure.acautogen.sh。我已经安装了Mingw和Cygwin(不确定两者都安装是个好主意)。我还将PATH设置为Mingwbin

到底该怎么办,从哪个make/config文件开始?对于知道该做什么的人来说,这似乎是一项简单的任务。

首先,避免Cygwin。MINGW应该足够了。

在尝试构建DLL之前,请确保MINGW安装按预期运行(尝试一个简单的"helloworld"程序)。

在验证了您可以编译一个简单的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(在编译源代码时生成)不需要按特定顺序链接,那么就足够了。

最新更新