現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
Problem in creating .dll from simulink model
7 件のコメント
Thanks for your Kaustubha.Now i can able to generate the .exe from RTW.By building the model in verbose build model I can able to clear all my errors. Now,I found one file which describes the procedure to create .dll from simulink model and it is the link. http://www.mathworks.in/matlabcentral/fileexchange/9709-from-simulink-to-dll-a-tutorial. I am getting error in matlab generated make file when trying to link and compile all the files using command gmake -f (modelname).mk in modelname.mk at 107:*** missing separator stop. and below attached is the make file # Copyright 1994-2007 The MathWorks, Inc. # # File : grt_lcc.tmf $Revision: 1.26.4.20 $ # # Abstract: # Real-Time Workshop template makefile for building a PC-based # stand-alone generic real-time version of Simulink model using # generated C code and # LCC compiler Version 2.4 # # This makefile attempts to conform to the guidelines specified in the # IEEE Std 1003.2-1992 (POSIX) standard. It is designed to be used # with GNU Make (gmake) which is located in matlabroot/bin/win32. # # Note that this template is automatically customized by the Real-Time # Workshop build procedure to create "<model>.mk" # # The following defines can be used to modify the behavior of the # build: # OPT_OPTS - Optimization options. Default is none. To enable # debugging specify as OPT_OPTS=-g4. # OPTS - User specific compile options. # USER_SRCS - Additional user sources, such as files needed by # S-functions. # USER_INCLUDES - Additional include paths # (i.e. USER_INCLUDES="-Iwhere-ever -Iwhere-ever2") # (For Lcc, have a '/'as file seperator before the # file name instead of a '\' . # i.e., d:\work\proj1/myfile.c - reqd for 'gmake') # # This template makefile is designed to be used with a system target # file that contains 'rtwgensettings.BuildDirSuffix' see grt.tlc
#------------------------ Macros read by make_rtw ------------------------------ # # The following macros are read by the Real-Time Workshop build procedure: # # MAKECMD - This is the command used to invoke the make utility # HOST - What platform this template makefile is targeted for # (i.e. PC or UNIX) # BUILD - Invoke make from the Real-Time Workshop build procedure # (yes/no)? # SYS_TARGET_FILE - Name of system target file.
MAKECMD = "%MATLAB%\bin\win32\gmake" SHELL = cmd HOST = PC BUILD = yes SYS_TARGET_FILE = grt.tlc BUILD_SUCCESS = * Created COMPILER_TOOL_CHAIN = lcc
MAKEFILE_FILESEP = /
#---------------------- Tokens expanded by make_rtw ---------------------------- # # The following tokens, when wrapped with "|>" and "<|" are expanded by the # Real-Time Workshop build procedure. # # MODEL_NAME - Name of the Simulink block diagram # MODEL_MODULES - Any additional generated source modules # MAKEFILE_NAME - Name of makefile created from template makefile model.mk # MATLAB_ROOT - Path to were MATLAB is installed. # MATLAB_BIN - Path to MATLAB executable. # S_FUNCTIONS - List of S-functions. # S_FUNCTIONS_LIB - List of S-functions libraries to link. # SOLVER - Solver source file name # NUMST - Number of sample times # TID01EQ - yes (1) or no (0): Are sampling rates of continuous task # (tid=0) and 1st discrete task equal. # NCSTATES - Number of continuous states # BUILDARGS - Options passed in at the command line. # MULTITASKING - yes (1) or no (0): Is solver mode multitasking # EXT_MODE - yes (1) or no (0): Build for external mode # TMW_EXTMODE_TESTING - yes (1) or no (0): Build ext_test.c for external mode # testing. # EXTMODE_TRANSPORT - Index of transport mechanism (e.g. tcpip, serial) for extmode # EXTMODE_STATIC - yes (1) or no (0): Use static instead of dynamic mem alloc. # EXTMODE_STATIC_SIZE - Size of static memory allocation buffer.
MODEL = dll_creation_ex MODULES = rt_logging.c rt_nonfinite.c MAKEFILE = dll_creation_ex.mk MATLAB_ROOT = C:/MATLAB/R2007b ALT_MATLAB_ROOT = C:/MATLAB/R2007b MATLAB_BIN = C:/MATLAB/R2007b/bin ALT_MATLAB_BIN = C:/MATLAB/R2007b/bin S_FUNCTIONS = add_fcn.c eg_extern_fcn_calls_wrapper.c S_FUNCTIONS_LIB = SOLVER = NUMST = 1 TID01EQ = 0 NCSTATES = 0 BUILDARGS = GENERATE_REPORT=0 MULTITASKING = 0 EXT_MODE = 0 TMW_EXTMODE_TESTING = 0 EXTMODE_TRANSPORT = 0 EXTMODE_STATIC = 0 EXTMODE_STATIC_SIZE = 1000000
MODELREFS = SHARED_SRC = SHARED_SRC_DIR = SHARED_BIN_DIR = SHARED_LIB = OPTIMIZATION_FLAGS =
#--------------------------- Model and reference models ----------------------- MODELLIB = dll_creation_exlib.lib MODELREF_LINK_LIBS = MODELREF_LINK_RSPFILE = dll_creation_ex_ref.rsp MODELREF_INC_PATH = RELATIVE_PATH_TO_ANCHOR = .. # NONE: standalone, SIM: modelref sim, RTW: modelref rtw MODELREF_TARGET_TYPE = NONE
#-- In the case when directory name contains space --- ifneq ($(MATLAB_ROOT),$(ALT_MATLAB_ROOT)) MATLAB_ROOT := $(ALT_MATLAB_ROOT) endif ifneq ($(MATLAB_BIN),$(ALT_MATLAB_BIN)) MATLAB_BIN := $(ALT_MATLAB_BIN) endif
#--------------------------- Tool Specifications ------------------------------
LCC = $(MATLAB_ROOT)\sys\lcc include $(MATLAB_ROOT)\rtw\c\tools\lcctools.mak
#----------------------------- External mode -----------------------------------
- Uncomment -DVERBOSE to have information printed to stdout
- To add a new transport layer, see the comments in
- matlabroot/toolbox/simulink/simulink/extmode_transports.m ifeq ($(EXT_MODE),1) EXT_CC_OPTS = -DEXT_MODE -DWIN32 # -DVERBOSE ifeq ($(EXTMODE_TRANSPORT),0) #tcpip EXT_SRC = ext_svr.c updown.c ext_work.c ext_svr_tcpip_transport.c EXT_LIB = $(MATLAB_ROOT)\sys\lcc\lib\wsock32.lib endif ifeq ($(EXTMODE_TRANSPORT),1) #serial_win32 EXT_SRC = ext_svr.c updown.c ext_work.c ext_svr_serial_transport.c EXT_SRC += ext_serial_pkt.c ext_serial_win32_port.c endif ifeq ($(TMW_EXTMODE_TESTING),1) EXT_SRC += ext_test.c EXT_CC_OPTS += -DTMW_EXTMODE_TESTING endif ifeq ($(EXTMODE_STATIC),1) EXT_SRC += mem_mgr.c EXT_CC_OPTS += -DEXTMODE_STATIC -DEXTMODE_STATIC_SIZE=$(EXTMODE_STATIC_SIZE) endif endif
#------------------------------ Include Path ----------------------------------
- see MATLAB_INCLUDES and COMPILER_INCLUDES from lcctools.mak
ADD_INCLUDES = \ -IC:/vasavi/vasavi/test/dll_creation_ex_grt_rtw \ -IC:/vasavi/vasavi/test \ -I$(MATLAB_ROOT)/rtw/c/libsrc \
SHARED_INCLUDES = ifneq ($(SHARED_SRC_DIR),) SHARED_INCLUDES = -I$(SHARED_SRC_DIR) endif
INCLUDES = -I. -I$(RELATIVE_PATH_TO_ANCHOR) $(MATLAB_INCLUDES) $(ADD_INCLUDES) \ $(COMPILER_INCLUDES) $(USER_INCLUDES) $(MODELREF_INC_PATH) $(SHARED_INCLUDES)
#------------------------ rtModel ---------------------------------------------- RTM_CC_OPTS = -DUSE_RTMODEL
#-------------------------------- C Flags --------------------------------------
- Optimization Options OPT_OPTS = $(DEFAULT_OPT_OPTS)
- General User Options OPTS =
- Compiler options, etc: ifneq ($(OPTIMIZATION_FLAGS),) CC_OPTS = $(OPTIMIZATION_FLAGS) $(OPTS) $(ANSI_OPTS) $(EXT_CC_OPTS) $(RTM_CC_OPTS) else CC_OPTS = $(OPT_OPTS) $(OPTS) $(ANSI_OPTS) $(EXT_CC_OPTS) $(RTM_CC_OPTS) endif
CPP_REQ_DEFINES = -DMODEL=$(MODEL) -DRT -DNUMST=$(NUMST) \ -DTID01EQ=$(TID01EQ) -DNCSTATES=$(NCSTATES) \ -DMT=$(MULTITASKING) -DHAVESTDIO
CFLAGS = $(CC_OPTS) $(CPP_REQ_DEFINES) $(INCLUDES) -noregistrylookup
ifeq ($(OPT_OPTS),$(DEFAULT_OPT_OPTS)) LDFLAGS = -s -L$(LIB) else LDFLAGS = -L$(LIB) endif
#------------------------- Additional Libraries -------------------------------
LIBS =
ifeq ($(OPT_OPTS),$(DEFAULT_OPT_OPTS)) LIBS += $(MATLAB_ROOT)/rtw/c/lib/win32\rtwlib_lcc.lib else LIBS += rtwlib.lib endif
LIBS += $(EXT_LIB) $(S_FUNCTIONS_LIB)
#----------------------------- Source Files ------------------------------------
ifeq ($(MODELREF_TARGET_TYPE), NONE) PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)/$(MODEL).exe BIN_SETTING = $(LD) $(LDFLAGS) -o $(PRODUCT) $(SYSLIBS) BUILD_PRODUCT_TYPE = executable REQ_SRCS = $(MODEL).c $(MODULES) $(EXT_SRC) \ grt_main.c rt_sim.c else # Model reference rtw target PRODUCT = $(MODELLIB) REQ_SRCS = $(MODULES) endif
USER_SRCS =
USER_OBJS = $(USER_SRCS:.c=.obj) LOCAL_USER_OBJS = $(notdir $(USER_OBJS))
SRCS = $(REQ_SRCS) $(S_FUNCTIONS) $(SOLVER) OBJS = $(SRCS:.c=.obj) $(USER_OBJS) LINK_OBJS = $(SRCS:.c=.obj) $(LOCAL_USER_OBJS)
SHARED_OBJS := $(addsuffix .obj, $(basename $(wildcard $(SHARED_SRC)))) FMT_SHARED_OBJS = $(subst /,\,$(SHARED_OBJS))
#--------------------------------- Rules ---------------------------------------
ifeq ($(MODELREF_TARGET_TYPE),NONE) $(PRODUCT) : $(OBJS) $(SHARED_LIB) $(LIBS) $(MODELREF_LINK_LIBS) $(BIN_SETTING) $(LINK_OBJS) @$(MODELREF_LINK_RSPFILE) $(SHARED_LIB) $(LIBS) @cmd /C "echo $(BUILD_SUCCESS) executable: $(MODEL).exe" else
$(PRODUCT) : $(OBJS) $(SHARED_LIB) $(LIBCMD) /out:$(MODELLIB) $(LINK_OBJS) @cmd /C "echo $(BUILD_SUCCESS) static library $(MODELLIB)" endif
%.obj : %.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(RELATIVE_PATH_TO_ANCHOR)/%.c $(CC) -c -Fo$(@F) -I$(RELATIVE_PATH_TO_ANCHOR)/$(<F:.c=cn_rtw) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/grt/%.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/%.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/ext_mode/common/%.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/ext_mode/tcpip/%.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/ext_mode/serial/%.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/ext_mode/custom/%.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/%.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/libsrc/%.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/simulink/src/%.c $(CC) -c -Fo$(@F) $(CFLAGS) $<
- Libraries:
MODULES_rtwlib = \ rt_backsubcc_dbl.obj \ rt_backsubcc_sgl.obj \ rt_backsubrc_dbl.obj \ rt_backsubrc_sgl.obj \ rt_backsubrr_dbl.obj \ rt_backsubrr_sgl.obj \ rt_enab.obj \ rt_forwardsubcc_dbl.obj \ rt_forwardsubcc_sgl.obj \ rt_forwardsubcr_dbl.obj \ rt_forwardsubcr_sgl.obj \ rt_forwardsubrc_dbl.obj \ rt_forwardsubrc_sgl.obj \ rt_forwardsubrr_dbl.obj \ rt_forwardsubrr_sgl.obj \ rt_look.obj \ rt_look1d.obj \ rt_look1d32.obj \ rt_look2d32_general.obj \ rt_look2d32_normal.obj \ rt_look2d_general.obj \ rt_look2d_normal.obj \ rt_look32.obj \ rt_lu_cplx.obj \ rt_lu_cplx_sgl.obj \ rt_lu_real.obj \ rt_lu_real_sgl.obj \ rt_matdivcc_dbl.obj \ rt_matdivcc_sgl.obj \ rt_matdivcr_dbl.obj \ rt_matdivcr_sgl.obj \ rt_matdivrc_dbl.obj \ rt_matdivrc_sgl.obj \ rt_matdivrr_dbl.obj \ rt_matdivrr_sgl.obj \ rt_matmultandinccc_dbl.obj \ rt_matmultandinccc_sgl.obj \ rt_matmultandinccr_dbl.obj \ rt_matmultandinccr_sgl.obj \ rt_matmultandincrc_dbl.obj \ rt_matmultandincrc_sgl.obj \ rt_matmultandincrr_dbl.obj \ rt_matmultandincrr_sgl.obj \ rt_matmultcc_dbl.obj \ rt_matmultcc_sgl.obj \ rt_matmultcr_dbl.obj \ rt_matmultcr_sgl.obj \ rt_matmultrc_dbl.obj \ rt_matmultrc_sgl.obj \ rt_matmultrr_dbl.obj \ rt_matmultrr_sgl.obj \ rt_sat_div_int16.obj \ rt_sat_div_int32.obj \ rt_sat_div_int8.obj \ rt_sat_div_uint16.obj \ rt_sat_div_uint32.obj \ rt_sat_div_uint8.obj \ rt_sat_prod_int16.obj \ rt_sat_prod_int32.obj \ rt_sat_prod_int8.obj \ rt_sat_prod_uint16.obj \ rt_sat_prod_uint32.obj \ rt_sat_prod_uint8.obj \
rtwlib.lib : $(MAKEFILE) rtw_proj.tmw $(MODULES_rtwlib) @cmd /C "echo ### Creating $@" @if exist $@ del $@ $(LIBCMD) /out:$@ $(MODULES_rtwlib) @cmd /C "echo ### $@ Created"
#----------------------------- Dependencies ------------------------------------
$(OBJS) : $(MAKEFILE) rtw_proj.tmw
$(SHARED_OBJS) : $(SHARED_BIN_DIR)/%.obj : $(SHARED_SRC_DIR)/%.c $(CC) -c -Fo$@ $(CFLAGS) $<
$(SHARED_LIB) : $(SHARED_OBJS) @cmd /C "echo ### Creating $@" $(LIBCMD) /out:$@ $(FMT_SHARED_OBJS) @cmd /C "echo ### $@ Created"
#--------- Miscellaneous rules to purge, clean and lint (sol2 only) ------------
purge : clean @cmd /C "echo ### Deleting the generated source code for $(MODEL)" @del $(MODEL).c $(MODEL).h $(MODEL)_types.h $(MODEL)_data.c \ $(MODEL)_private.h $(MODEL).rtw $(MODULES) rtw_proj.tmw $(MAKEFILE)
clean : @cmd /C "echo ### Deleting the objects and $(PROGRAM)" @del $(LINK_OBJS) ..\$(MODEL).exe
@del rtwlib.lib
- EOF: grt_lcc.tmf
plz help me in fixing this.
回答 (0 件)
参考
カテゴリ
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
アジア太平洋地域
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)