linux 怎么运行c程序?
我用gcc编译成了.o文件后,运行时出错:
pyt@pyt-Ideapad-S205:~/table$ gcc first.c -o first.o
pyt@pyt-Ideapad-S205:~/table$ gcc first.o
first.o:在函数‘_fini’中:
(.fini+0x0): `_fini'被多次定义
/usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/crti.o:(.fini+0x0):第一次在此定义
first.o:在函数‘data_start’中:
(.data+0x0): `__data_start'被多次定义
/usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/crt1.o:(.data+0x0):第一次在此定义
first.o:在函数‘data_start’中:
(.data+0x4): `__dso_handle'被多次定义
/usr/lib/gcc/i686-linux-gnu/4.7/crtbegin.o:(.data+0x0):第一次在此定义
first.o:(.rodata+0x4): `_IO_stdin_used'被多次定义
/usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/crt1.o:(.rodata.cst4+0x0):第一次在此定义
first.o:在函数‘_start’中:
(.text+0x0): `_start'被多次定义
/usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/crt1.o:(.text+0x0):第一次在此定义
first.o:(.rodata+0x0): `_fp_hw'被多次定义
/usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/crt1.o:(.rodata+0x0):第一次在此定义
first.o:在函数‘_init’中:
(.init+0x0): `_init'被多次定义
/usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/crti.o:(.init+0x0):第一次在此定义
/usr/lib/gcc/i686-linux-gnu/4.7/crtend.o:(.tm_clone_table+0x0): `__TMC_END__'被多次定义
first.o:(.data+0x8):第一次在此定义
/usr/bin/ld: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored.
/usr/bin/ld : 在first.o (.eh_frame)中发生错误; .eh_frame_hdr表格不会被创建。
collect2: 错误: ld 返回 1
pyt@pyt-Ideapad-S205:~/table$
pyt@pyt-Ideapad-S205:~/table$
刚学的linux ubuntu .10的
[解决办法]
# gcc first.c -o first
# ./first
楼主还是静下心找本书系统看看吧。
[解决办法]
gcc test.c -o exe
./exe
[解决办法]
楼主编译连接没问题,错在执行,gcc first.o 改成./first.o就可以了
[解决办法]
楼主还是找本书慢慢看吧。这个是基本的东西,别浮躁,慢慢学。
[解决办法]
比如一个hello.c要编译的话:
编译命令:
gcc -o hello hello.c
运行完后就会生成一个可执行的hello文件
运行命令:
./hello
[解决办法]
-o后面的文件是可以直接运行的,所以你不用再编译first.o了。
[解决办法]
找本系统管理、使用的基本书籍看看吧、
或者详细介绍工具使用的书,啃啃。