ccs报错:error #10234-D: unresolved symbols remain

博客记录了在CCS6的project中添加硬汉提供的DSP2833x_common和DSP2833x_headers头文件与源文件后编译报错的问题,报错为符号找不到定义位置。经排查,确定是硬汉提供的源文件有问题,删除后重新添加TI例程中的源文件,编译通过。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考地址:https://e2echina.ti.com/question_answer/microcontrollers/c2000/f/56/t/17305

问题描述:在ccs6的project中添加了硬汉提供的DSP2833x_common和DSP2833x_headers中的头文件和源文件,编译报错:error #10234-D: unresolved symbols remain ,符号找不到定义位置。

(大概是下面这种错误,之前没保存,在网上找一个差不多报错的。。。)

确定错误原因:console窗口的内容大概是PieVectTable is  imconpatiable of declared of C:\Users\Yang\workspace_v6_0\FFT\GlobalVariableDefaults.c;硬汉提供的的源文件有问题可能,反正删除之后重新添加TI例程中的源文件,编译通过!

地址在:C:\ti\controlSUITE\device_support\f2833x\v142\DSP2833x_headers\source下。

 

 

[0]**** Build of configuration Debug for project timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang **** [1]"F:\\TI2\\CCS_20.2.0.00012_win\\ccs\\utils\\bin\\gmake" -k -j 16 all -O [2]Building file: "../timx_timer_mode_pwm_edge_sleep.c" [3]Invoking: Arm Compiler [4]"F:/TI2/CCS_20.2.0.00012_win/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/bin/tiarmclang.exe" -c @"device.opt" -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/yyyk/workspace_ccstheia/timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang" -I"C:/Users/yyyk/workspace_ccstheia/timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang/Debug" -I"F:/TI2/CCS_20.2.0.00012_win/mspm0_sdk_2_05_00_05/source/third_party/CMSIS/Core/Include" -I"F:/TI2/CCS_20.2.0.00012_win/mspm0_sdk_2_05_00_05/source" -gdwarf-3 -MMD -MP -MF"timx_timer_mode_pwm_edge_sleep.d_raw" -MT"timx_timer_mode_pwm_edge_sleep.o" @"./device.opt" -o"timx_timer_mode_pwm_edge_sleep.o" "../timx_timer_mode_pwm_edge_sleep.c" [5]../timx_timer_mode_pwm_edge_sleep.c:55:24: warning: call to undeclared function 'DL_GPIO_setOutputHighOnPin'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] [6] 55 | if (nibble & 0x01) DL_GPIO_setOutputHighOnPin(LCD_PORT, LCD_D4_PIN); [7] | ^ [8]../timx_timer_mode_pwm_edge_sleep.c:63:5: warning: call to undeclared function 'DL_GPIO_setOutputLowOnPin'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] [9] 63 | DL_GPIO_setOutputLowOnPin(LCD_PORT, LCD_E_PIN); [10] | ^ [11]../timx_timer_mode_pwm_edge_sleep.c:69:5: warning: call to undeclared function 'DL_GPIO_setOutputLowOnPin'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] [12] 69 | DL_GPIO_setOutputLowOnPin(LCD_PORT, LCD_RS_PIN); // RS=0: 命令模式 [13] | ^ [14]../timx_timer_mode_pwm_edge_sleep.c:77:5: warning: call to undeclared function 'DL_GPIO_setOutputHighOnPin'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] [15] 77 | DL_GPIO_setOutputHighOnPin(LCD_PORT, LCD_RS_PIN); // RS=1: 数据模式 [16] | ^ [17]4 warnings generated. [18]Finished building: "../timx_timer_mode_pwm_edge_sleep.c" [19]Building target: "timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang.out" [20]Invoking: Arm Linker [21]"F:/TI2/CCS_20.2.0.00012_win/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/bin/tiarmclang.exe" @"device.opt" -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -gdwarf-3 -Wl,-m"timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang.map" -Wl,-i"F:/TI2/CCS_20.2.0.00012_win/mspm0_sdk_2_05_00_05/source" -Wl,-i"C:/Users/yyyk/workspace_ccstheia/timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang" -Wl,-i"C:/Users/yyyk/workspace_ccstheia/timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang/Debug/syscfg" -Wl,-i"F:/TI2/CCS_20.2.0.00012_win/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS/lib" -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang_linkInfo.xml" -Wl,--rom_model -o "timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang.out" "./timx_timer_mode_pwm_edge_sleep.o" "./ti_msp_dl_config.o" "./startup_mspm0l130x_ticlang.o" -Wl,-l"./device_linker.cmd" -Wl,-ldevice.cmd.genlibs -Wl,-llibc.a [22] undefined first referenced [23] symbol in file [24] --------- ---------------- [25] DL_GPIO_setOutputHighOnPin ./timx_timer_mode_pwm_edge_sleep.o [26] DL_GPIO_setOutputLowOnPin ./timx_timer_mode_pwm_edge_sleep.o [27]error #10234-D: unresolved symbols remain [28]error #10010: errors encountered during linking; "timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang.out" not built [29]tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation) [30]gmake[1]: *** [makefile:139: timx_timer_mode_pwm_edge_sleep_LP_MSPM0L1306_nortos_ticlang.out] Error 1 [31]gmake: *** [makefile:133: all] Error 2 [32]**** Build Finished ****
07-07
### TI CCS 编译错误 `#10234-D: unresolved symbols remain` 的解决方法 编译错误 `#10234-D: unresolved symbols remain` 通常表示链接器无法解析某些符号(函数或变量),这可能是由于缺少必要的库文件、未正确声明的函数或变量,或者工程配置不当所致。以下是一些常见的解决方案和排查步骤: #### 1. **检查函数或变量的定义** 确保所有在代码中引用的函数或全局变量都在某个源文件或库中正确定义。例如,如果在主程序中调用了 `void myFunction(void)`,则必须有一个 `.c` 文件包含该函数的实现[^1]。 ```c // main.c extern void myFunction(void); // 声明 myFunction(); // 调用 // mymodule.c void myFunction(void) { // 定义 // 函数体 } ``` #### 2. **确认库文件是否被正确添加** 如果使用了外部库(如 DSP 库、数学库等),请确保这些库文件(`.lib` 或 `.a`)已经添加到项目中,并且路径设置正确。可以在 CCS 的项目属性中检查链接器输入部分是否包含所需的库文件[^1]。 #### 3. **检查编译器和链接器选项** 有时编译器优化级别或链接器脚本设置不正确也会导致符号未解析的问题。可以尝试关闭优化或恢复默认链接器脚本以进行测试。 #### 4. **启用“显示未解析符号”功能** 在 CCS 中启用详细链接器输出可以帮助定位具体是哪些符号未被解析。可以在命令行参数中添加 `-z --trace-symbol <symbol_name>` 来追踪特定符号的链接情况[^1]。 #### 5. **清理并重新构建项目** 有时旧的编译残留可能导致问题。建议执行完整的清理操作(Project > Clean),然后重新构建整个项目。 #### 6. **检查目标设备型号是否匹配** 确保工程中选择的目标设备型号与实际使用的硬件一致。如果芯片型号配置错误,可能会导致标准库函数无法正确链接[^1]。 #### 7. **检查运行时支持库(RTS)是否缺失** TI 的 C/C++ 编译器依赖运行时支持库(如 `rts2800_ml.lib`)来提供基本的运行环境。如果未正确包含该库,可能会出现大量未解析符号。请确保在链接器输入中添加了正确的 RTS 库[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值