This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6678中的IPC原例子出问题,编译不错

Other Parts Discussed in Thread: SYSBIOS

软件:CCS5.2, 硬件:6678EVM

直接导入F:\ti\pdk_C6678_1_1_2_6\packages\ti\transport\ipc\examples\shmIpcBenchmark,就是IPC测试MSM,报错如下:

**** Build of configuration Debug for project shmIpcBenchmark_c6678 ****

F:\ti\ccsv5\utils\bin\gmake -k all
'Building file: ../bench_shm.cfg'
'Invoking: XDCtools'
"F:/ti/xdctools_3_23_04_60/xs" --xdcpath="F:/ti/pdk_C6678_1_1_2_6/packages;F:/ti/bios_6_33_06_50/packages;F:/ti/ipc_1_24_03_32/packages;F:/ti/ccsv5/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C66 -p ti.platforms.evm6678 -r debug -c "F:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.4.1" "../bench_shm.cfg"
making package.mak (because of package.bld) ...
generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
configuring bench_shm.xe66 from package/cfg/bench_shm_pe66.cfg ...
warning: xdc.runtime.Error: "F:/ti/xdctools_3_23_04_60/packages/xdc/runtime/Error.xs", line 44: xdc.runtime.Error E_generic: the message for this error (= '%$S') requires %$S support but xdc.runtime.System.extendedFormats (= '%f') does not include '%$S'
cle66 package/cfg/bench_shm_pe66.c ...
'Finished building: ../bench_shm.cfg'
' '
'Building file: ../bench_shm.c'
'Invoking: C6000 Compiler'
"F:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.4.1/bin/cl6x" -mv6600 --abi=eabi -g --include_path="F:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.4.1/include" --display_error_number --diag_warning=225 --preproc_with_compile --preproc_dependency="bench_shm.pp" --cmd_file="./configPkg/compiler.opt" "../bench_shm.c"
'Finished building: ../bench_shm.c'
' '
'Building target: shmIpcBenchmark_c6678.out'
'Invoking: C6000 Linker'
"F:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.4.1/bin/cl6x" -mv6600 --abi=eabi -g --display_error_number --diag_warning=225 -z -m"shmIpcBenchmark_c6678.map" -i"F:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.4.1/lib" -i"F:/Program Files/Texas Instruments/C6000 Code Generation Tools 7.4.1/include" --reread_libs --warn_sections --rom_model -o "shmIpcBenchmark_c6678.out" -l"./configPkg/linker.cmd" "./bench_shm.obj" -l"libc.a"
<Linking>

undefined first referenced
symbol in file
--------- ----------------
Osal_platformFree F:\ti\pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l\platform_lib\lib\debug\ti.platform.evm6678l.ae66<platform.obj>
Osal_platformMalloc F:\ti\pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l\platform_lib\lib\debug\ti.platform.evm6678l.ae66<platform.obj>
Osal_platformSpiCsEnter F:\ti\pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l\platform_lib\lib\debug\ti.platform.evm6678l.ae66<evmc66x_spi.obj>
Osal_platformSpiCsExit F:\ti\pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l\platform_lib\lib\debug\ti.platform.evm6678l.ae66<evmc66x_spi.obj>
allocateMessages ./bench_shm.obj
attachAll ./bench_shm.obj
calculateThroughput ./bench_shm.obj
detachAll ./bench_shm.obj
freeMessages ./bench_shm.obj
getExecutionTime64 ./bench_shm.obj
getStartTime64 ./bench_shm.obj
getStats ./bench_shm.obj
receiveMessages ./bench_shm.obj
sendMessages ./bench_shm.obj
syncReceiveCore ./bench_shm.obj
syncSendCore ./bench_shm.obj

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

>> Compilation failure
gmake: *** [shmIpcBenchmark_c6678.out] Error 1
gmake: Target `all' not remade because of errors.

**** Build Finished ****

求解答,是连接库路径没有加吗?我是直接导入进来并选择”copy“选项,并且选择:

其他什么都没有动,为什么会出错?

  • 编译错误的原因是用户的工程中链接不到IPC和SYSBIOS库中的函数。

         因为这个IPC的例子工程中需要使用TI的IPC库和SYSBIOS库

         可以在build option->general->RTSC下看看有没有加入对应的IPC和 SYSBIOS的库。