0

拼命尝试将一堆C文件编译成DLL。我也有Makefile.am,,,configure.acautogen.sh我已经安装了 Mingw 和 Cygwin(不确定两者兼有)。我也设置PATHMingw\bin.

究竟要做什么,从哪个 make/config 文件开始?对于谁知道该做什么来说,这似乎是一项简单的任务。

4

1 回答 1

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(在编译源代码时产生)不需要以特定顺序链接,它应该足够了。

于 2013-08-31T21:07:52.733 回答