TI中文支持网
TI专业的中文技术问题搜集分享网站

error #10234-D: unresolved symbols remain and error #10010: errors encountered during linking

您好,使用的开发板为AM5728,CCS版本为6.1.3。

我创建了一个DSP平台的BIOS工程,想进行点亮LED灯的实验,所以我先进行了使能工作,在调用Board_init()时出现了现在的问题。我的代码如下:

/* XDCtools Header files */
#include <xdc/std.h>
#include <xdc/cfg/global.h>
#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>

/* BIOS Header files */
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>

#include <stdio.h>

/* TI-RTOS Header files */
#include <ti/drv/gpio/GPIO.h>
#include <ti/drv/gpio/soc/GPIO_soc.h>

#include "GPIO_board.h"

#include <ti/board/board.h>

/*
* ======== Board_initI2C ========
*/
static void Board_initGPIO(void) {
Board_initCfg boardCfg;

boardCfg = BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_MODULE_CLOCK
| BOARD_INIT_UART_STDIO;

Board_init(boardCfg);
}

/*
* ======== taskFxn ========
*/
Void taskFxn(UArg a0, UArg a1)
{
System_printf("enter taskFxn()\n");

Task_sleep(10);

System_printf("exit taskFxn()\n");

System_flush(); /* force SysMin output to console */
}

/*
* ======== main ========
*/
Int main()
{ Task_Handle task;
Error_Block eb;

System_printf("enter main()\n");

/* Call board init functions */
Board_initGPIO();

Error_init(&eb);
task = Task_create(taskFxn, NULL, &eb);
if (task == NULL) {
System_printf("Task_create() failed!\n");
BIOS_exit(0);
}

BIOS_start(); /* does not return */
return(0);
}

然后再编译过程中出现了如下信息:

'Building target: test_led1.out'
'Invoking: C6000 Linker'
"E:/CCS/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/bin/cl6x" -mv6600 -g –define=am5728 –define=SOC_AM572x –define=EVM_AM572x –define=USE_BIOS –define=C66X –define=NSS_GEN2 –define=core1 –diag_warning=225 –diag_wrap=off –display_error_number -z -m"test_led1.map" –heap_size=0x800 –stack_size=0x800 -i"E:/CCS/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/lib" -i"E:/CCS/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/include" –reread_libs –define=CORE1=1 –diag_wrap=off –display_error_number –warn_sections –xml_link_info="test_led1_linkInfo.xml" –rom_model -o "test_led1.out" "./GPIO_board.obj" "./main.obj" -l"configPkg/linker.cmd" -llibc.a<Linking>

undefined first referenced
symbol in file ——— —————-
Board_init ./main.obj

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "test_led1.out" not built

>> Compilation failure
makefile:140: recipe for target 'test_led1.out' failed
gmake: *** [test_led1.out] Error 1
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

可以确定的是头文件board.h是正确包含的,并且Board_init()在里面是有声明的。找到一些信息是说要关联相关的.c文件,但是我不清楚具体该怎么办。请问这种问题是怎么造成的,该怎么解决呢?非常感谢!

Tony Tang:

是Board_init这个函数没找到,不是头文件的问题,如果是头文件没找到,会有相应提示的。

你看一下Board_init这个函数是哪个库里的,把相应的库加到工程里来。

yongqing wang:

直接搜这个函数的实现,将源码一起加进去

Dinan Liang:

回复 Shine:

您好,很抱歉现在才回复您,由于我的CCS突然出现了“An internal error occurred during: "CrashTrackerJob"”这个错误,耽误了时间。

按照您的信息,我的pdk版本为pdk_am57xx_1_0_4,然后在pdk_am57xx_1_0_4\packages\ti\board\lib\evmAM572x里面有如下三个文件:

因为我创建的是DSP文件,所以选择的c66文件夹。在文件夹pdk_am57xx_1_0_4\packages\ti\board\lib\evmAM572x\c66\release中有着“ti.board.ae66”和“ti.board.ae66e”两个文件。然后我在properties->File Search Path->Include library file or command file as input中加入ti.board.ae66,运行后原错误仍然存在。随后删除ti.board.ae66,再加入ti.board.ae66e,运行后出现如下错误:

fatal error #16001: object files have incompatible byte orderings ("E:/am5728/learnam5728/pdk_am57xx_1_0_4/pdk_am57xx_1_0_4/packages/ti/board/lib/evmAM572x/c66/release/ti.board.ae66e<evmAM572x.oe66e>" = big endian, "./GPIO_board.obj" = little endian)

从错误中可以看出,ti.board.ae66e是big endian,而我的.obj为little endian,格式不符合,查询到第一次添加的ti.board.ae66为little endian,所以符合格式要求的为该文件。现在的结果是添加后原错误仍然存在。

Dinan Liang:

回复 Shine:

您好,Shine!很抱歉是我疏忽了,在添加了ti.board.ae66后,原错误已经解决了,出现的是新的错误:

undefined first referenced symbol in file ——— —————- UART_stdioInit E:/am5728/learnam5728/pdk_am57xx_1_0_4/pdk_am57xx_1_0_4/packages/ti/board/lib/evmAM572x/c66/release/ti.board.ae66<evmAM572x_lld_init.oe66>

现在已经不是Board_init的问题了,我会按照现有思路去解决,非常感谢您的帮助,同时也对我之前的疏忽表示抱歉

Dinan Liang:

回复 Tony Tang:

您好,Tony!非常感谢您的帮助,的确如您所说,这不是头文件的问题。按照您的指点我去寻找了Board_init函数在哪个库中,不过因为不熟悉的原因导致进度缓慢。一直未回复您,很抱歉!

赞(0)
未经允许不得转载:TI中文支持网 » error #10234-D: unresolved symbols remain and error #10010: errors encountered during linking
分享到: 更多 (0)