使用MSVC命令行编译Makefile库

时间:2019-11-27 05:25:05

标签: c++ c visual-c++ makefile

我是makefile的新手,正在尝试使用MSVC命令行来编译库。该库带有一个makefile,如下所示:

LIB = proj4lib.a 
SRCS = $(wildcard *.cpp) 
OBJS = $(SRCS:.cpp=.o)
DEPS = $(SRCS:.cpp=.depends)
include ../../../MakeIncludes
INCDIRS = -I../include $(ADD_INC_DIRS) 
CCFLAGS = ${INCDIRS} ${ADD_CPP_FLAGS} 

.PHONY: clean all

all: $(LIB)

$(LIB): $(SRC) $(OBJS) $(DEPS)
    ar ruv $(LIB) $(OBJS)
    ranlib $(LIB)

%.o: %.cpp 
    $(CPPCOMP) -c $< $(CCFLAGS)

%.depends: %.cpp
    $(CPPCOMP) -M $(CCFLAGS) $< > $@

clean:
    rm -rf $(OBJS) $(LIB) $(DEPS) ii_files ti_files make.out

-include $(DEPS)



我试图将其转换为cl.exe命令以将其编译为库。我结束了这个命令

cl.exe /LD *.cpp /I../include /EHsc /D_USE_MATH_DEFINES 它编译库没有错误,但是我不确定我做对与否。因为我还没有定义任何入口点或类似的东西。这是我的输出

Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24245 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

adjlon.cpp
emess.cpp
pj_auth.cpp
pj_mlfn.cpp
pj_msfn.cpp
pj_phi2.cpp
pj_qsfn.cpp
pj_tsfn.cpp
Generating Code...
Microsoft (R) Incremental Linker Version 14.00.24245.0
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:adjlon.dll
/dll
/implib:adjlon.lib
adjlon.obj
emess.obj
pj_auth.obj
pj_mlfn.obj
pj_msfn.obj
pj_phi2.obj
pj_qsfn.obj
pj_tsfn.obj

我不知道为什么选择adjlon.lib作为入口点并使用此名称创建一个dll,并且输出的dll是否正确编译。我想知道如何将带有Makefile的项目转换为能够使用msvc进行编译的命令

0 个答案:

没有答案
相关问题