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.
工具/软件:TI C/C++编译器
您好,
我无法解决链接器"未解析的符号仍然存在"问题。 该项目是正确生成和运行的项目的副本。 我将复制的项目更改为使用TI-COFF而不是ELF。 我有一些没有源代码的旧库,它们是用COFF构建的。 我想尝试使用较旧的库。 我从TI starterware中的源文件重建system_config.lib。 这似乎奏效了。 我尝试过对路径和下划线,双下划线进行各种更改,但仍然遇到相同的错误。
我正在使用startup.c文件,其中包含start_boot(void)函数 ,并在链接程序cmd文件中加载init.obj。 执行这些步骤的原因是在保持主管模式时调用main()。 我需要在启动时执行许多初始化操作,并且希望在C中执行这些操作,而不是在ASM或GEL文件中执行这些操作。
我认为我的问题在于指定正确的路径,名称转换问题或ELF和COFF格式之间的某些差异。
以下是构建列表的最后一部分:
下面是我认为重要的代码部分。
链接程序cmd文件的一部分:
章节
全局 条目
全局 启动启动
.global __TI_auto_init
.ref __stack
.ref __stack_end
.ref bss_start
.ref bss_end
.ref start_boot
stackptr (_stackptr): word __stack_end
_BSS_START:. Word BSS_START
_BSS_结束: Word BSS_END
启动启动: word start_boot
_data_auto_init: .word __TI_auto_init
还不错! 这是可行的。
在引用C函数时添加下划线
全局 _start_boot
.ref _START_BOOT
并在ASM文件中更改变量的名称
my_start_boot: .word _start_boot ; <-使用加了强调的名称
然后在指令中使用新命名的变量
LDR R10,my_start_boot ;获取start_boot的地址
我尝试了添加下划线和重命名,但我认为我没有同时尝试这两种方法:-P
非常感谢。 编译,链接和运行。