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.

[参考译文] 在 gcc V9汇编代码中未定义对 main 的引用(并且不仅仅是...)

Guru**** 2589300 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/975099/undefined-reference-to-main-in-gcc-v9-assembly-code-and-not-only

大家好、

我离开 CCS 一段时间、我要返回到 Windows 7 64位上的 CCS V10 (最新版本)、用于在汇编代码中使用 gcc V9 (最新版本)的简单项目。

我有点失望

以下文件(test.S,项目的唯一文件):

----------------------------------------

.text

复位:

JMP 复位

.section .resetvect、"ax"、@progbits"

.word 复位

----------------------------------------

在链接期间生成以下错误(编译正常;-))

----------------------------------------

Makefile:144:目标'test.out'的配方失败

C:/ti/ccs1010/ccs/tools/compiler/msp430-gcc-9.2.0.50_win64/bin/../lib/gcc/msp430-elf/9.2.0/../../../../msp430-elf/bin/ld.exe:test.out 部分`_reset_vector'将不适用于`reSETVEC'区域

C:/ti/ccs1010/ccs/tools/compiler/msp430-gcc-9.2.0.50_win64/bin/../lib/gcc/msp430-elf/9.2.0/../../../../msp430-elf/bin/ld.exe:区域`reSETVEC'的 Java 脚本编写为2个字节

C:/ti/ccs1010/ccs/tools/compiler/msp430-gcc-9.2.0.50_win64/bin/../lib/gcc/msp430-elf/9.2.0/../../../../msp430-elf/bin/ld.exe:C:/ti/ccs1010/ccs/tools/compiler/msp430-gcc-9.2.0.50_win64/bin/../lib/gcc/msp430-elf/9.2.0/../../../../msp430-elf/lib libcrt.a (crt_main.o):在函数`.Loc.254.1'中:

(.crt_0800call_main+0x4):未`m对"主"的引用

----------------------------------------

我怎么了?

克劳德

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

    尝试-nodstartfiles 选项。 默认启动库代码要求在用户程序中定义 main。

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

    您好、Jozfel、

    你是对的! 非常感谢。

    右键单击 Project,然后选择“show build setting”> linker> basic 并选中相关复选框:-)

    顺便说一下,我想知道-nostdlib 选项是否可以成为更好的配置?

    BR、

    克劳德

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

    您好、Claude、

    是否使用标准库取决于您是否需要、请参阅 https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html

    [引述]

    -nostartfiles

    链接时请勿使用标准系统启动文件。 标准系统库通常使用、除非是 -nostdlib -nolibc. -nodefaultlibs 使用的。

    -nostdlib

    链接时请勿使用标准系统启动文件或库。 没有启动文件、只有您指定的库会传递给链接器、以及指定系统库链接的选项、例如 static-libgcc shared-libgcc ,将被忽略。

    [/报价]

    此致、

    约泽夫