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.

[参考译文] 编译器:C6000链接器未定义符号错误

Guru**** 2526700 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/568800/compiler-c6000-linker-undefined-symbol-error

工具/软件:TI C/C++编译器

我是C66x编码的新手。

下面给出了这个简单代码片段:

#include<stdio.h>
#include<C6x.h>
/*
 主要c
 */

int main (void){
   Int A =10;
   int b = 30;
   //const __X128_t c_14_32_14_0;
   int c =_土地(a,b);


   printf ("Hello RK\n");
   返回0;
}

我收到了这个错误。 帮助我如何解决此问题。

错误:

****为项目Test_c66x生成配置调试****

/opt/ti/ccsv5/utils/bin/gmake -k all
建筑文件:../main.c.
正在调用:C6000编译器
"/opt/ti/ccsv5/tools/compiler/C6000_compan.4/bin/cl65" 7.4 -mv6740 --abi=coffabi -g --include_path="/opt/ti/ccsv5/tools/compiler/C6000_proc.4/include" 7.4 --display_error_number --diag_warning=off --diag_bus_predependence_c="-compan_proc="-predependence.  
"../main.c",第11行:警告#225-D:隐式声明函数
完工建筑:../main.c.
 
构建目标:test_c66x.out
正在调用:C6000 Linker
"/opt/ti/ccsv5/tools/compiler/C6000_diag_wrap.4/bin/cl6x" 7.4 -mv6740 --abi=coffabi -g --display_error_number --diag_warning=225 --diag_wrap=off -z -m"Test_c66x.map"-i"/opt/ti/ccsv5/rema_ex-ex_ex-ex_exp 7.4 -exp -ex_ex_ex/rew_ex-ex-ex_ex_ex-ex_ex_ex-ex_ex-ex_ex_ex_ex_ex-ex-"rebl_ex_ex_ex_ex_ex_ex-"-ex_ex_ex_ex_ex_ex_ex-"-z_ex_ex_ex_ex_ex-"-z_ex_ex_ex_ex_ex_ex_ex-"-z_ex_ex_ex_ex_ex_ex_ex_ex-"-"-"- 7.4  
链接>
警告#1.021万-D:创建默认大小为0x400的".stack"部分;使用-stack选项更改默认大小
警告#1.021万-D:创建默认大小为0x400的".sysmem"部分;使用-heap选项更改默认大小

 未定义的第一个引用
 文件中的符号           
 ------------------- --------
 _土地   ./main.obj      

错误#1.0234万-D:仍存在未解析的符号
错误#1.001万:链接期间遇到错误;未生成"Test_c66x.out

>>编译失败
gmake:***[Test_c66x.Out ]错误1
gmake:target `all' not remake because of errors.

****构建已完成****

谢谢

 RK

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您有两个不同的问题。

    第一,您使用_land内在过程,它仅在C6600设备上可用。  但您可以使用交换机-mv6740为C674x设备构建。  一个或另一个必须改变。  如果您使用C6600设备,请将-mv6740更改为-mv6600。  如果您使用C6740设备,则不能使用内在_land。  要了解有关内部函数的更多信息,请在 C6000编译器手册中查找_land

    第二,您不使用链接程序命令文件。  这就是为什么你会看到...

    warning #1.021万-D:创建默认大小为0x400的".stack"部分;使用-stack选项更改默认大小
    警告#1.021万-D:创建默认大小为0x400的".sysmem"部分;使用-heap选项更改默认大小

    C6000的链接程序命令文件集合可以在类似的目录位置找到...

    C:\ti\ccsv5\CCS_base\C6000\include 

    选择与您使用的设备最匹配的设备,然后将其添加到您的项目中。  

    链接程序命令文件中的代码告诉链接程序如何将所有代码和数据放入设备的有效内存范围。

    谢谢,此致,

    -George