当前位置: 技术问答>linux和unix
另开新贴 100问Pro*c问题,解决就给分
来源: 互联网 发布时间:2015-09-26
本文导语: 我做了一个InsertData.pc pro*c程序,在Vc++下调试通过并运行成功, 我现在移到Linux可以把InsertData.pc————〉InsertData.c————〉InsertData.o文件 现在InsertData.o————〉InsertData可执行文件出现如下错误。请高...
我做了一个InsertData.pc pro*c程序,在Vc++下调试通过并运行成功,
我现在移到Linux可以把InsertData.pc————〉InsertData.c————〉InsertData.o文件
现在InsertData.o————〉InsertData可执行文件出现如下错误。请高手指点。分不购可以在加
错误内容:
[oracle@YDLinux oracle]$ gcc -o InsertData InsertData.o
InsertData.o(.rodata+0x0): multiple definition of `_fp_hw'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.rodata+0x0): first def
ined here
InsertData.o(.data+0x4): In function `__data_start':
: multiple definition of `__dso_handle'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/crtbegin.o(.data+0x0): first defined he
re
InsertData.o(.init+0x0): In function `_init':
/usr/src/build/229343-i386/BUILD/glibc-2.3.2-20030227/build-i386-linux/csu/crti.
S:35: multiple definition of `_init'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crti.o(.init+0x0):/usr/src/bui
ld/229343-i386/BUILD/glibc-2.3.2-20030227/build-i386-linux/csu/crti.S:12: first
defined here
InsertData.o(.text+0x0): In function `_start':
: multiple definition of `_start'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x0): first defin
ed here
InsertData.o(.fini+0x0): In function `_fini':
/usr/src/build/229343-i386/BUILD/glibc-2.3.2-20030227/build-i386-linux/csu/crti.
S:51: multiple definition of `_fini'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crti.o(.fini+0x0): first defin
ed here
InsertData.o(*ABS*+0x804972c): In function `__init_array_start':
InsertData.c: multiple definition of `_GLOBAL_OFFSET_TABLE_'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.got.plt+0x0): first de
fined here
InsertData.o(.rodata+0x4): multiple definition of `_IO_stdin_used'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.rodata+0x4): first def
ined here
InsertData.o(.data+0x0): In function `__data_start':
: multiple definition of `__data_start'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.data+0x0): first defin
ed here
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.dynamic+0x0): multiple
definition of `_DYNAMIC'
collect2: ld returned 1 exit status
为什么总提示我”multiple definition of “重复定义,那些函数也不是我写的阿,到底是哪里的错误
现在对这个问题没有一点解决思路。
我现在移到Linux可以把InsertData.pc————〉InsertData.c————〉InsertData.o文件
现在InsertData.o————〉InsertData可执行文件出现如下错误。请高手指点。分不购可以在加
错误内容:
[oracle@YDLinux oracle]$ gcc -o InsertData InsertData.o
InsertData.o(.rodata+0x0): multiple definition of `_fp_hw'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.rodata+0x0): first def
ined here
InsertData.o(.data+0x4): In function `__data_start':
: multiple definition of `__dso_handle'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/crtbegin.o(.data+0x0): first defined he
re
InsertData.o(.init+0x0): In function `_init':
/usr/src/build/229343-i386/BUILD/glibc-2.3.2-20030227/build-i386-linux/csu/crti.
S:35: multiple definition of `_init'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crti.o(.init+0x0):/usr/src/bui
ld/229343-i386/BUILD/glibc-2.3.2-20030227/build-i386-linux/csu/crti.S:12: first
defined here
InsertData.o(.text+0x0): In function `_start':
: multiple definition of `_start'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x0): first defin
ed here
InsertData.o(.fini+0x0): In function `_fini':
/usr/src/build/229343-i386/BUILD/glibc-2.3.2-20030227/build-i386-linux/csu/crti.
S:51: multiple definition of `_fini'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crti.o(.fini+0x0): first defin
ed here
InsertData.o(*ABS*+0x804972c): In function `__init_array_start':
InsertData.c: multiple definition of `_GLOBAL_OFFSET_TABLE_'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.got.plt+0x0): first de
fined here
InsertData.o(.rodata+0x4): multiple definition of `_IO_stdin_used'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.rodata+0x4): first def
ined here
InsertData.o(.data+0x0): In function `__data_start':
: multiple definition of `__data_start'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.data+0x0): first defin
ed here
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.dynamic+0x0): multiple
definition of `_DYNAMIC'
collect2: ld returned 1 exit status
为什么总提示我”multiple definition of “重复定义,那些函数也不是我写的阿,到底是哪里的错误
现在对这个问题没有一点解决思路。
|
在工程目录下输入grep data_start *
可以查看data_start定义和使用情况
可以判断是否重复定义
另外VC下编译得东西用gcc编译是否可以
不太清楚可以用g++试试
可以查看data_start定义和使用情况
可以判断是否重复定义
另外VC下编译得东西用gcc编译是否可以
不太清楚可以用g++试试
|
查查看是不是定义重复了。你的pro*c最好使用名字空间保证定义的唯一性。
|
你可以先写个最简单的例子, 试试, 如果还有问题,就是你的环境出了问题。
else
再慢慢调试
else
再慢慢调试
|
慢慢找吧!这个很难帮你,主要是要有恒心和耐心!