Linux编译时发生找不到程序的入口函数 main;usr/lib/crt1.o(.text+0x34): error: undefined reference to ‘main‘

Linux编译时发生找不到程序的入口函数 main;usr/lib/crt1.o(.text+0x34): error: undefined reference to ‘main’

在这里插入图片描述发生这个错是表示找不到程序的入口函数 main,入口函数 main 是程序执行的起点,没有它无法进行链接和执行。
当发生这个错误有三种情况:

  1. 一种是你真的没写main函数,所以编译时就会报这个错。然后你编译的文件真的是不需要main函数,这时解决的方法就是,添加编译选项 -nostartfiles;

  2. 一种是你Makefile里没有指定main.cpp这个文件的路径,一般在编译时,这些.cpp文件会作为依赖进行编译,当依赖里没有包main.cpp的话,这样在编译时,并不会把main.cpp包含进去一起编译。解决方法就是:
    在这里插入图片描述
    例如,你的main.cpp放在当前目录下,就把${wildcard ./*.cpp}放在最前面,相当于把包含 main 函数的源文件放在其他源文件的前面。

  3. 最后一种就是,你以上两步都操作正确了,但是你的 main 函数写错了,例如你有可能写成 mian,或者小括号写成中文的小括号等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cc -o ../../bin/lsqfit main.o lsqfit_ls.o block_init.o line.o -L../../lib -ldblock -ldutil /home/ubuntu/software/tcl/tcl8.5.11/lib/libtcl8.5.so -lm -lc /usr/bin/ld: main.o: in function `main': main.c:(.text+0x239): undefined reference to `blk_open_file' /usr/bin/ld: main.c:(.text+0x499): undefined reference to `blk_open_file' /usr/bin/ld: main.c:(.text+0x5e3): undefined reference to `blk_open_file' /usr/bin/ld: main.c:(.text+0x8f9): undefined reference to `blk_open_file' /usr/bin/ld: ../../lib/libdblock.a(skip.o): in function `blk__skip': skip.c:(.text+0xed): undefined reference to `blk__getlines' /usr/bin/ld: skip.c:(.text+0x126): undefined reference to `blk__getlines' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_init_read': read.c:(.text+0x15): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_read_blk': read.c:(.text+0x6a): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_read_data': read.c:(.text+0xad): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk__read_data': read.c:(.text+0x119): undefined reference to `blk__getlines' /usr/bin/ld: read.c:(.text+0x1b2): undefined reference to `blk__getlines' /usr/bin/ld: read.c:(.text+0x1e5): undefined reference to `blk__getlines' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_read_check': read.c:(.text+0x398): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_read_blk_check': read.c:(.text+0x3d6): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk__read_check': read.c:(.text+0x49b): undefined reference to `blk__getlines' /usr/bin/ld: read.c:(.text+0x788): undefined reference to `blk__getlines' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_print_env': read.c:(.text+0xbdf): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(variables.o
06-06

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值