私は必死にたくさんの C ファイルを DLL にコンパイルしようとしています。Makefile.am
、configure.ac
、も持っていautogen.sh
ます。私はすでにMingwとCygwinをインストールしています(両方をインストールするのは良い考えではありません)。にも設定PATH
しましたMingw\bin
。
make/config ファイルのどれから始めればよいのでしょうか? 何をすべきかを知っている人にとっては簡単な作業のように見えます。
私は必死にたくさんの C ファイルを DLL にコンパイルしようとしています。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
(ソースのコンパイル時に生成される) を特定の順序でリンクする必要がない場合は、それで十分です。