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

时间:2013-08-31 20:11:50

标签: c windows dll compilation mingw

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

究竟要做什么,哪个make / config文件要开始?对于谁知道该做什么来说,这看起来很简单。

1 个答案:

答案 0 :(得分:2)

首先,避免使用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(编译源代码时生成)不需要按特定顺序链接,那就足够了。