我是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进行编译的命令