'Undefined reference to' error in S-function builder

16 views (last 30 days)
I have this in the S-function Libraries pane
Library/Object/Source file
convert_ok
Include files and external function declarations
#include <math.h>
#include <stdio.h>
#include <string.h>
I call the function in the Output pane
y[0]=Convert(u[0])
*Note: Convert() is a function inside the convert_ok.c source file. During compilation and building the S-function, it gives me the following error ' undefined reference to _Convert' at the y[0]=Convert(u[0]) line in the wrapper file. What is the problem? How can i make this work?

Accepted Answer

Kaustubha Govind
Kaustubha Govind on 11 Jan 2013
In the Library/Object/Source file pane, you need to specify the full filename (including the .c extension):
convert_ok.c
You may also need to specify the full path to the .c file if it is not present in the current directory.
  3 Comments
Mark McBroom
Mark McBroom on 9 Nov 2019
Edited: Mark McBroom on 9 Nov 2019
You need to define the function prototype for the function Convert and place this in a header file, for example convert_ok.h. Then, add #include "convert_ok.h" to the s-function builder block after your other #include statements. See the "S-Function Builder" section of this page:
Poornima Pagadala
Poornima Pagadala on 11 Nov 2019
Edited: Poornima Pagadala on 11 Nov 2019
I have include header file also to the sfunction builder block,also I am getting undefined reference error in this way:
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x3f): undefined reference to `oel_rtos_wince_restore_interrupts'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x5a): undefined reference to `oel_rtos_wince_disable_interrupts'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x89): undefined reference to `oel_rtos_wince_disable_interrupts'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x129): undefined reference to `oel_rtos_wince_restore_interrupts'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x167): undefined reference to `oel_u_queuei_init'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x1b6): undefined reference to `scl_j1939_cat_ppgn_id_install_command'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x1fd): undefined reference to `scl_j1939_cat_ppgn_id_install_command'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x244): undefined reference to `scl_j1939_cat_ppgn_id_install_command'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x250): undefined reference to `scl_pgb_j1939_feature_ack_rspnse_clbk'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x257): undefined reference to `scl_pgb_j1939_feature_clbk'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x263): undefined reference to `scl_j1939_fmgr_install_client'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x27b): undefined reference to `scl_j1939_fmgr_install_server'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x28e): undefined reference to `scl_pgb_j1939_update'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x295): undefined reference to `scl_j1939_install_service_update'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x2a8): undefined reference to `scl_pgb_j1939_stop_bcast'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x2ad): undefined reference to `scl_j1939_add_stop_bcast_client'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x320): undefined reference to `scl_j1939_is_valid_link'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x352): undefined reference to `oel_u_queuei_init'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x363): undefined reference to `oel_u_oheap_init'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x36f): undefined reference to `oel_u_oheap_prealloc_objects'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x418): undefined reference to `scl_j1939_cat_ppgn_id_install_command'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x42f): undefined reference to `scl_j1939_cmgr_feature_ack_rspnse_clbk'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x436): undefined reference to `scl_j1939_cmgr_feature_clbk'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x442): undefined reference to `scl_j1939_fmgr_install_client'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x458): undefined reference to `scl_j1939_fmgr_install_server'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x466): undefined reference to `scl_j1939_cmgr_update'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x46d): undefined reference to `scl_j1939_install_service_update'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x4b3): undefined reference to `scl_pgb_j1939_ecm_init'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x4c5): undefined reference to `oel_rtos_wince_disable_interrupts'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x4f0): undefined reference to `oel_rtos_wince_restore_interrupts'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x53a): undefined reference to `scl_pgb_j1939_get_ecm'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x58b): undefined reference to `scl_pgb_j1939_ecm_add_rx_grps'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x68c): undefined reference to `oel_rtos_wince_disable_interrupts'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.text+0x6ac): undefined reference to `oel_rtos_wince_restore_interrupts'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.y29J1939__PortMgrStatic_i[.refptr.y29J1939__PortMgrStatic_i]+0x0): undefined reference to `y29J1939__PortMgrStatic_i'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_j1939_cmgr_update[.refptr.scl_j1939_cmgr_update]+0x0): undefined reference to `scl_j1939_cmgr_update'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_j1939_cmgr_feature_clbk[.refptr.scl_j1939_cmgr_feature_clbk]+0x0): undefined reference to `scl_j1939_cmgr_feature_clbk'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_j1939_cmgr_feature_ack_rspnse_clbk[.refptr.scl_j1939_cmgr_feature_ack_rspnse_clbk]+0x0): undefined reference to `scl_j1939_cmgr_feature_ack_rspnse_clbk'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_j1939_cmgr_rx_cmd[.refptr.scl_j1939_cmgr_rx_cmd]+0x0): undefined reference to `scl_j1939_cmgr_rx_cmd'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.Gpast_link_table[.refptr.Gpast_link_table]+0x0): undefined reference to `Gpast_link_table'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_pgb_j1939_stop_bcast[.refptr.scl_pgb_j1939_stop_bcast]+0x0): undefined reference to `scl_pgb_j1939_stop_bcast'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_pgb_j1939_update[.refptr.scl_pgb_j1939_update]+0x0): undefined reference to `scl_pgb_j1939_update'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_pgb_j1939_feature_clbk[.refptr.scl_pgb_j1939_feature_clbk]+0x0): undefined reference to `scl_pgb_j1939_feature_clbk'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_pgb_j1939_feature_ack_rspnse_clbk[.refptr.scl_pgb_j1939_feature_ack_rspnse_clbk]+0x0): undefined reference to `scl_pgb_j1939_feature_ack_rspnse_clbk'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_pgb_j1939_rx_data[.refptr.scl_pgb_j1939_rx_data]+0x0): undefined reference to `scl_pgb_j1939_rx_data'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_pgb_j1939_rx_response[.refptr.scl_pgb_j1939_rx_response]+0x0): undefined reference to `scl_pgb_j1939_rx_response'
C:\Users\DISPLA~1\AppData\Local\Temp\mex_8354074037145409_11524\J1939_PGB_Update_wrapper.obj:J1939_PGB_Update_wrapper.c:(.rdata$.refptr.scl_pgb_j1939_rx_request[.refptr.scl_pgb_j1939_rx_request]+0x0): undefined reference to `scl_pgb_j1939_rx_request'
collect2.exe: error: ld returned 1 exit status

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!