1

信じがたいかもしれませんが、ビルド環境とは何かを完全に理解するにはまだ苦労しています。私は何年にもわたって、それがディレクトリ ツリーであり、コンパイラがプロジェクトをビルドするために必要なすべてのヘッダーlibファイルを見つけることができることを収集してきました。

TDM-GCC 64 ビット コンパイラ、MSYS、Windows 7 64 ビットを使用しています。

プロジェクトで使用するライブラリをビルドすると、ヘッダーと lib ファイルがすべて C:\mingw ディレクトリに配置されます。つまり、C**:\mingw\include & C:\mingw\lib**

私がzlibを構築しているとしましょう。zlib ディレクトリには lib ヘッダーとインクルード ヘッダーの両方が含まれ、私のルート c:\mingw ディレクトリには zlib ヘッダーと lib ファイルも含まれます。

そのため、依存関係として zlib を必要とする他のライブラリをビルドするときは、最初に以下のコマンドを使用しました: ./configure --prefix = c:\mingwそして、' make ' コマンド (すべて MSYS 内) を使用してビルドすると、私の新しいライブラリは、 c:\mingw\include & c:\mingw\lib ディレクトリにあるすべての依存関係を見つけることができます。 私はこれを正しく行いましたか?

ここで私は混乱します。 同じコンパイラ TDM-GCC 64bit を使用する CodeBlocks IDE でプロジェクトを作成する場合、検索ディレクトリを c:\mingw\include & c:\mingw\lib ディレクトリに設定しますか、それとも zlib ディレクトリを使用しますか? c:\zlib\include と c:\zlib\lib ディレクトリ?

または... ファイルパスが次のようになるように、zlibディレクトリ全体を c:\mingw ディレクトリ内に配置する必要があります:
c:\mingw\zlib\include & c:\mingw\zlib\lib ディレクトリ

上記のすべてについて間違っている場合、Windows で堅牢なビルド環境をセットアップするにはどうすればよいですか?

また....私の知識のこのギャップを補うために、この種のことをうまく説明している本/教科書はありますか?

私は今のところ cygwin を使用しないことに決めました。

たくさんの質問 ;)

ありがとう、長文すみません。

********以下、後期追記************

テスト ファイルを c:\ming に配置し、コマンド ラインを使用してコマンド gcc -v test.hを呼び出しました (test.h は、コンパイラの検索パスをテストするためにルート ディレクトリに配置したテスト ファイルです。出力:

ご覧のとおり、--prefix を使用すると、 C:/mingw/lib/gcc/x86_64-w64-mingw32/5.1.0/includeにある他のインクルード ディレクトリ が無視されます。なぜmingwコンパイラがこれを行ったのか疑問に思っています。

コンパイラに検索させるのに問題があるファイル (math.h) は、インクルード ディレクトリにもありません。

C:\mingw\include>gcc -v test.h
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/mingw/bin/../libexec/gcc/x86_64-w64-mingw32/5.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-5.1.0/configure --build=x86_64-w64-mingw32 --enable-targets=all --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable-libgomp --enable-lto --enable-graphite --enable-cxx-flags=-DWINPTHREAD_STATIC --disable-build-with-cxx --disable-build-poststage1-with-cxx --enable-libstdcxx-debug --enable-threads=posix --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libstdcxx-threads --enable-libstdcxx-time --with-gnu-ld --disable-werror --disable-nls --disable-win32-registry --prefix=/mingw64tdm --with-local-prefix=/mingw64tdm --with-pkgversion=tdm64-1 --with-bugurl=http://tdm-gcc.tdragon.net/bugs
Thread model: posix
gcc version 5.1.0 (tdm64-1)
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64'
 C:/mingw/bin/../libexec/gcc/x86_64-w64-mingw32/5.1.0/cc1.exe -quiet -v -iprefix C:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/ -D_REENTRANT test.h -quiet -dumpbase test.h -mtune=generic -march=x86-64 -auxbase test -version -o C:\Users\user\AppData\Local\Temp\cco9AQmC.s --output-pch=test.h.gch
GNU C11 (tdm64-1) version 5.1.0 (x86_64-w64-mingw32)
        compiled by GNU C version 5.1.0, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "C:/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/include"
ignoring duplicate directory "C:/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../include"
ignoring duplicate directory "C:/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/include-fixed"
ignoring duplicate directory "C:/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/include"
#include "..." search starts here:
#include <...> search starts here:
 C:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/include
 C:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../include
 C:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/include-fixed
 C:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/include
End of search list.
GNU C11 (tdm64-1) version 5.1.0 (x86_64-w64-mingw32)
        compiled by GNU C version 5.1.0, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 72fdcf42c4c1c584c8e1347f320364c3
In file included from pngconf.h:30:0,
                 from test.h:422:
C:/mingw/include/limits.h:32:23: fatal error: tr1/climits: No such file or directory
compilation terminated.

C:\mingw\include>
4

1 に答える 1