本文主要是介绍Creo二次开发-makefile,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Creo二次开发,很多教程都是用VS。这个庞然大物用起来真的很麻烦,经常出现一些奇奇怪怪的东西。研究Creo二次开发手册发现,软件提供的示例都是带makefile文件的,开始也是在VS中利用makefile对源文件进行编译,但是还是觉得VS太难用了。
现在,经过我的不屑努力,终于把直接可以nmake的makefile文件配好了。不过这个文件中有一个地方一直不太理解:
@<<longline.list
这个东西是个什么意思,请对windows下makefile有研究的朋友帮忙解惑。
有了makefile之后,在VSCode下写代码简直不要太爽。
不过VSCode的历史记录功能没有PyCharm好用,不知道是不是我没配置好,现在的历史记录只是依托Gitee。
# File Name
MAKEFILENAME = makefile# Machine Type
PRO_MACHINE_TYPE = x86e_win64# Executable names
EXE = CreoEx.exe
EXE_DLL = CreoEx.dll# Pro/Toolkit Source & Machine Loadpoint
PROTOOL_SRC = C:/PROGRA~1/PTC/CREO3~1.0/M130/COMMON~1/PROTOO~1
PROTOOL_SYS = $(PROTOOL_SRC)/$(PRO_MACHINE_TYPE)OTK_CPP_SRC = E:/otk_cpp/CreoEx_P30M130/src
OTK_CPP_ROOT = C:/PROGRA~1/PTC/CREO3~1.0/M130/COMMON~1/OTK/OTK_CPP
OTK_CPP_SYS = $(OTK_CPP_ROOT)/$(PRO_MACHINE_TYPE)
OTK_CPP_INCLUDES = $(OTK_CPP_ROOT)/includeICU_PATH = $(PROTOOL_SYS)/obj
#C:\Program Files (x86)\Windows Kits\8.0\Include
SYS_INCLUDE = C:/Progra~2/WI3CF2~1/8.0/Include
#C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC
VS_INCLUDE = C:/Progra~2/MICROS~3.0/VC# Include File Paths
INCS = -I. \-I$(PROTOOL_SRC)/includes \-I$(OTK_CPP_INCLUDES) \-I$(OTK_CPP_SRC)/includes \-I$(SYS_INCLUDE)/um \-I$(SYS_INCLUDE)/shared \-I$(VS_INCLUDE)/include
# Compiler Flags
CC = "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\cl.exe"
# CC = cl
#DEBUG = /Zi
OTK_CPP_DEFS =
MACH = -DPRO_MACHINE=36 -DPRO_OS=4
CCFLAGS = -c -GS -fp:precise -DUSE_ANSI_IOSTREAMS -DPRO_USE_VAR_ARGS /EHsc $(DEBUG)
CFLAGS = $(CCFLAGS) $(INCS) $(MACH) $(OTK_CPP_DEFS)# Libraries
#C:\Program Files (x86)\Windows Kits\8.0
LIB_PATH = C:/Progra~2/WI3CF2~1/8.0/Lib\win8
LIBS = $(LIB_PATH)/um/x64/kernel32.lib \$(LIB_PATH)/um/x64/user32.lib \$(LIB_PATH)/um/x64/wsock32.lib \$(LIB_PATH)/um/x64/advapi32.lib \$(LIB_PATH)/um/x64/mpr.lib \$(LIB_PATH)/um/x64/winspool.lib \$(LIB_PATH)/um/x64/netapi32.lib \$(LIB_PATH)/um/x64/psapi.lib \$(LIB_PATH)/um/x64/gdi32.lib \$(LIB_PATH)/um/x64/shell32.lib \$(LIB_PATH)/um/x64/comdlg32.lib \$(LIB_PATH)/um/x64/ole32.lib \$(LIB_PATH)/um/x64/ws2_32.lib \$(VS_INCLUDE)/lib/amd64/libcpmt.lib\$(VS_INCLUDE)/lib/amd64/libcmt.lib\$(VS_INCLUDE)/lib/amd64/oldnames.lib\$(LIB_PATH)/um/x64/uuid.lib \$(LIB_PATH)/um/x64/version.lib PTCLIBS = \$(OTK_CPP_SYS)/obj/otk_cpp.lib \$(ICU_PATH)/protoolkit_NU.lib \$(ICU_PATH)/ucore.lib \$(ICU_PATH)/udata.lib PTCLIBS_DLL = \$(OTK_CPP_SYS)/obj/otk_cpp.lib \$(ICU_PATH)/protk_dll_NU.lib \$(ICU_PATH)/ucore.lib \$(ICU_PATH)/udata.lib # Object files
OBJS = annotation_tool_main.obj# Linker
LINK = "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\link.exe"
# LINK = link
#Executable applications compiled using WinMain() instead of main() should set the subsystem to windows instead of console.
LINKFLAGS = /subsystem:console /debug:none /machine:amd64 /ignore:4049 /ignore:4219 /ignore:4217$(EXE) : $(OBJS) $(PTCLIBS)@echo Start at `date`@echo PROTOOL_SRC = $(PROTOOL_SRC)@echo PROTOOL_SYS = $(PROTOOL_SYS)
#Executable applications compiled using WinMain() instead of main() should set the subsystem to windows instead of console.$(LINK) /out:$(EXE) $(LINKFLAGS) @<<longline.list
$(OBJS) $(PTCLIBS) $(LIBS)
<< @echo Finished at `date`del $(OBJS)$(EXE_DLL) : $(OBJS) $(PTCLIBS_DLL)@echo Start at `date`@echo PROTOOL_SRC = $(PROTOOL_SRC)@echo PROTOOL_SYS = $(PROTOOL_SYS)$(LINK) /out:$(EXE_DLL) $(LINKFLAGS) /dll @<<longline.list
$(OBJS) $(PTCLIBS_DLL) $(LIBS)
<<@echo Finished at `date`del $(OBJS)# object dependenciesannotation_tool_main.obj: $(OTK_CPP_SRC)/annotation_tool_main.cxx$(CC) $(CFLAGS) $(OTK_CPP_SRC)/annotation_tool_main.cxxdll: $(EXE_DLL)clean :del $(OBJS)del $(EXE)nmake -f $(MAKEFILENAME)clean_dll :del $(OBJS)del $(EXE_DLL)nmake -f $(MAKEFILENAME) dll
这篇关于Creo二次开发-makefile的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!