MSVC - 通过Makefile创建静态库

时间:2018-06-14 01:15:49

标签: visual-c++ command-line static-libraries linker-errors gnu-make

所以我一直试图在MSVC下在Windows下创建一个静态库,方法是在微软的x64命令行工具下启动mingw32-make。我得到链接器错误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()添加定义时,库链接没有问题。这是什么交易?

1 个答案:

答案 0 :(得分:2)

当我们构建静态库时,我们需要使用SELECT 'GRANT ' || PRIVILEGE || ' ON ' || OWNER || '.' || TABLE_NAME || ' TO ' || GRANTEE || ';' FROM DBA_TAB_PRIVS WHERE GRANTEE='HR'; SELECT 'GRANT ' || PRIVILEGE || ' TO ' || GRANTEE || ';' FROM DBA_SYS_PRIVS WHERE GRANTEE='HR'; SELECT 'GRANT ' || GRANTED_ROLE || ' TO ' || GRANTEE FROM DBA_ROLE_PRIVS WHERE GRANTEE='HR'; link.exe /lib [LIB Options]link.exe -lib [LIB Options]。这没有很好的记录(部分在这里 - Running LIB

注意 - 当您运行lib [LIB Options]时 - 它执行lib.exe xxx并退出 - 所以link.exe -lib xxx不是自助服务实用程序,而是调整到lib.exe(与{{1}相同} reexec link.exe)。我们当然可以使用dump.exe xxx进行构建,但最好使用link.exe -dump xxx命令。