自分のシステムにビジュアルスタジオをインストールしました。したがって、対応するコンパイラと環境変数が設定されます。私がclコマンドを使用してCファイルをコンパイルしようとすると、正常に動作します。今、私は別のシステムからmingWを圧縮し、私のシステムにそれを抽出しました。私はそれがD:/ mingWにあると言う。今私は、cファイルをコンパイルするためのバッチファイルを作成しました。バッチファイルの内容は、mingW/cygwinをインストールせずにgccを使用してcコードをコンパイル
set gccPath=D:/mingW/bin
%gccPath%/gcc.exe -c -std=c99 -o myC.o ../myC.c -I..\.
です。このバッチファイルを実行すると、エラーはほとんど発生しません。 そのようなエラーは、コンパイラは、Visual Studioの代わりに、MinGWのデフォルトのヘッダファイルのstdio.hのを取るという事実に
stdio.h:209:71: error: macro "snprintf" requires 5 arguments, but only 4 given
上記のエラーがあるかもしれないです。 別のエラーは、私は完全にmingwのを使用して、Cファイルをコンパイルするバッチスクリプトで変更する必要がありますどのような
error: previous declaration of 'xxxxFun' was here
です。 コンパイルプロセスは、我々は、Visual Studioを使用する場合に成功しているが、私たちは、ファイル
EDIT
の同じセットのためのgccを使用する場合、エラーがスローされます。私は後者のエラーを修正し 。 stdio.hが最初に含まれている場合、最初のエラーは発生しません。しかし、インクルードセクションの途中にstdio.hをインクルードすると、エラーが発生します。我々が持っている場合は#include <string.h>
#include <assert.h>
#include <minmax.h>
#include "myFunctions.h"
#include "MyModule.h"
#include <stdio.h>
stdio.hの示すように、最後の、エラーが来ています。 #include <stdio.h>
行を#include <MyModule.h>
の上の他の行に移動すると、指定されたエラーは発生しません。この奇妙な行動の背後にある理由は何ですか?
*インストール*したくない理由は何ですか?管理者権限が欠落している場合は、「インストールする」ことができます。 [msys2](http://www.msys2.org/)にあなたが書き込み権限を持っているディレクトリを作成してください。シェルには、すべてがうまくコンパイルされてコンパイルされるように設定されています( '' pacman' )。 –
@FelixPalmen私のコードは、ユーザーから異なるコンパイラ(win64gcc、win32gcc =>はminGWまたはCygwinでもかまいません)へのパスを取得し、指定されたコンパイラを使用して指定されたCコードをコンパイルします。 – Nandha
これは非常に珍しいことです。代わりに、あなたがサポートしているツールチェーン(例えば、バッチファイルや 'msvc'用のmsbuildスクリプト、' gcc'/'clang'用のMakefileなど)を使って構築する手段を提供してください。 –