MSVC - 通过 Makefile 创建静态库
MSVC - Creating a static library via Makefile
所以我一直在尝试通过在 Microsoft 的 x64 命令行工具下启动 mingw32-make 在 MSVC 下的 Windows 下创建一个静态库。我收到链接器错误 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 Options]
或link.exe -lib [LIB Options]
或lib [LIB Options]
。这没有很好的记录(部分在这里 - Running LIB)
注意 - 当你 运行 lib.exe xxx
- 它执行 link.exe -lib xxx
并退出 - 所以 lib.exe
不是自助服务实用程序,而是填充到 link.exe
(与 dump.exe xxx
reexec link.exe -dump xxx
相同)。我们当然可以使用 lib.exe
进行构建,但最好使用 link.exe /lib
命令。
所以我一直在尝试通过在 Microsoft 的 x64 命令行工具下启动 mingw32-make 在 MSVC 下的 Windows 下创建一个静态库。我收到链接器错误 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 Options]
或link.exe -lib [LIB Options]
或lib [LIB Options]
。这没有很好的记录(部分在这里 - Running LIB)
注意 - 当你 运行 lib.exe xxx
- 它执行 link.exe -lib xxx
并退出 - 所以 lib.exe
不是自助服务实用程序,而是填充到 link.exe
(与 dump.exe xxx
reexec link.exe -dump xxx
相同)。我们当然可以使用 lib.exe
进行构建,但最好使用 link.exe /lib
命令。