【发布时间】:2017-08-25 13:41:09
【问题描述】:
我想通过在**NIX 系统中调用类似于make 的nmake 来使用visual-studio 构建工具cl.exe 构建一个c 应用程序。我写了一个makefile。它找不到用于链接的include 文件和object 文件。我找不到太多关于如何链接库的参考资料。
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.
【问题讨论】:
-
使用 Visual Studio 控制台窗口,该窗口设置环境变量,例如包含位置。如果您想使用常规控制台窗口,请使用 Visual Studio 之一,并执行“设置”命令以查看所有设置。对于其中包含空格的路径,请用引号 (") 将它们括起来。
-
@rcgldr 已经从 Visual Studio 控制台窗口调用
nmake。正如错误中所说的ignoring unknown option '-L../lib'这些是我放置在lib文件夹中的本地包含文件。看不懂大概-L -
@rcgldr 加双引号没有区别,结果相同
-
包含路径:
/I<dir>,库路径/link /LIBPATH:<dir> -
我已经告诉过你了。试试
link /?