2017-08-25 7 views
0

ためのメイクファイル(NMAKE)を書くためにどのように私はmake**NIX内のシステムのような類似したnmakeを呼び出すことによってvisual-studioビルドツールcl.execアプリケーションを構築したいです。私はmakefileと書いています。リンクするファイルがinclude、ファイルがobjectではありません。私はライブラリをリンクする方法をあまり参考にすることができませんでした。は、Visual Studioのビルドツールのcl.exeの

CC=cl.exe 
INC=-I../include 
LIB=-L../lib 

socket: socket.c 
    $(CC) socket.c $(INC) $(LIB) -lssl -lcrypto 

出力

D:\client>nmake 

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 
Copyright (C) Microsoft Corporation. All rights reserved. 

cl.exe socket.c -I../include -L../lib -lssl -lcrypto 
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86 
Copyright (C) Microsoft Corporation. All rights reserved. 

cl : Command line warning D9002 : ignoring unknown option '-L../lib' 
cl : Command line warning D9002 : ignoring unknown option '-lssl' 
cl : Command line warning D9002 : ignoring unknown option '-lcrypto' 
socket.c 
Microsoft (R) Incremental Linker Version 10.00.40219.01 
Copyright (C) Microsoft Corporation. All rights reserved. 

/out:socket.exe 
socket.obj 
LINK : fatal error LNK1104: cannot open file 'Ws2_32.lib' 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cl.exe"' : return code '0x2' 
Stop. 
+0

環境を設定Visual Studioのコンソールウィンドウを、使用を読みたいかもしれませんインクルード場所などの変数通常のコンソールウィンドウを使用する場合は、Visual Studioを使用し、すべての設定を表示する「set」コマンドを実行します。空白を含むパスについては、引用符( ")で囲みます。 – rcgldr

+0

@rcgldrはすでにVisual Studioコンソールウィンドウから「nmake」を呼び出しています。エラーの場合と同様に'不明なオプションを無視する '-L ../lib''これらはローカルのインクルードファイルを 'lib'フォルダに置いています。おそらく' -L'を理解しません。 –

+0

@rcgldr二重引用符を入れても違いはありません同じ結果 –

答えて

1

cl.exeライブラリのgccの構文を使用すると、ファイルが含まれていません。ここで

は、ファイルを指定する方法の(使用可能しかし、完璧ではない)の例である:

cl main.c freetype.lib gdi32.lib glew.lib jpeg.lib 

あなたもhow to include in cl.exe

+0

'cl'コマンドを使ってすべてのライブラリのリストを1行に書きたくないです。私の質問は、より管理しやすい方法でmakefileを書く方法です。私は50以上のインクルードファイルと多くのライブラリを持つことができました。 'cl/help'は完全な画像も表示しません。 '/ link'をリンクしたい場合、'/LIBPATH'はどこから来ますか? –

+0

あなたは、ソースファイルのそれぞれに必要な依存ファイルを生成するようにmakefileを書くことができます。その依存ファイルは、makefileによって生成されると、すべてのライブラリヘッダー参照を持ちます。 – user3629249

関連する問題