Visual c++ MSVC-通过Makefile创建静态库

Visual c++ MSVC-通过Makefile创建静态库,visual-c++,command-line,static-libraries,linker-errors,gnu-make,Visual C++,Command Line,Static Libraries,Linker Errors,Gnu Make,因此,我一直在尝试在微软的x64命令行工具下启动mingw32-make,在微软的MSVC下的Windows下创建一个静态库。I get linker错误LNK1561:必须定义入口点。为了完整起见,这里是我的Makefile all: build\lib\libds.lib build\lib\libds.lib: build\obj\priority-queue.obj link /OUT:build\bin\libds.lib build\obj\priority-queue.o

因此,我一直在尝试在微软的x64命令行工具下启动mingw32-make,在微软的MSVC下的Windows下创建一个静态库。I get linker错误LNK1561:必须定义入口点。为了完整起见,这里是我的Makefile

all: build\lib\libds.lib

build\lib\libds.lib: build\obj\priority-queue.obj
    link /OUT:build\bin\libds.lib build\obj\priority-queue.obj

build\obj\priority-queue.obj: libs/ds/priority-queue.c include/ds/priority-queue.h
    cl /Iinclude /c libs/ds/priority-queue.c /Fo:build\obj\priority-queue.obj

当我为main()添加定义时,库链接没有问题。这是怎么回事?

当我们构建静态库时,我们需要使用
link.exe/lib[lib选项]
link.exe-lib[lib选项]
lib[lib选项]
。这没有很好的记录(部分在这里-)


请注意-当您运行
lib.exe xxx
-它执行
link.exe-lib xxx
并退出-so
lib.exe
不是自助服务实用程序,而是填充到
link.exe
(与
dump.exe xxx
reexec
link.exe-dump xxx
)中。我们当然可以使用
lib.exe
进行构建,但最好使用
link.exe/lib
命令

/lib
选项添加到链接器命令行,如
链接/lib/OUT:build\bin\libds.lib build\obj\priority queue.obj
将其作为答案,以便我可以接受。我在MSDN上什么也没找到。MSDN没有列出此信息,它可能对命令行上的其他构建有用。