0
我正在编程一个微控制器。创建我与2010年的VisualStudio和现在的所有代码,使用相同的代码与单片机,我得到这个错误:再次collect2:ld返回1退出状态
...
./src/main.o:(.rodata.GPS_latitude+0x0): multiple definition of `GPS_latitude'
./src/empresa1.o:(.rodata.GPS_latitude+0x0): first defined here
./src/main.o:(.rodata.GPS_hora+0x0): multiple definition of `GPS_hora'
./src/empresa1.o:(.rodata.GPS_hora+0x0): first defined here
./src/gps.o: In function `GPS_PreencheCampos':
gps.c:(.text.GPS_PreencheCampos+0x4): undefined reference to `GPS_GuardaAnterior'
./src/main.o: In function `main':
main.c:(.text.startup.main+0xa0): undefined reference to `GPS_PegaValorLatitude'
main.c:(.text.startup.main+0xa4): undefined reference to `GPS_PegaLatitudeInt'
main.c:(.text.startup.main+0xc0): undefined reference to `GPS_PegaValorLongitude'
main.c:(.text.startup.main+0xc4): undefined reference to `GPS_PegaLongitudeInt'
main.c:(.text.startup.main+0xf8): undefined reference to `GPS_PegaHoraInt'
main.c:(.text.startup.main+0x110): undefined reference to `GPS_PegaStatusInt'
main.c:(.text.startup.main+0x128): undefined reference to `GPS_PegaModoInt'
main.c:(.text.startup.main+0x140): undefined reference to `GPS_PegaSatelitesInt'
collect2: ld returned 1 exit status
make: *** [TFRT_Leandro.axf] Error 1
最初人们可以看到,也有“多重定义”一些错误味精。所有这些消息都是关于.h文件中定义的变量。他们被定义为GPS_DATA的波纹管所:
struct {
char data[7]; // Data no formato ddMMyy\0
char hora[7]; // Hora no formato hhmmss\0
char latitude[10]; // Latitude no formato ddmm.mmmm\0
char longitude[11]; // Longitude no formato dddmm.mmmm\0
char velocidade[6]; // Velocidade no formato sss.s\0
char curso[6]; // Curso no formato ccc.c\0
char satelites[3]; // Número de satélites no formato nn\0
char status[2]; // Qualidade do GPS Invalido(0), Valido GNSS fixo(1) ou Valido GNSS fixo diferencial(2)
char norteSul[2]; // Direção de latitude (N/S)
char lesteOeste[2]; // Direção de longitude (E/W)
char modo[2]; // Modo: Sem fixo disponível (1), 2D (2), 3D (3)
} GPS_Info;
typedef struct GPS_Dado{
int origem;
int posicao;
int tamanho;
char * pDado;
};
const struct GPS_Dado GPS_hora = {GPS_Tipo_GPRMC, 0, 7, GPS_Info.hora};
,我们可以看到的另一件事是,有以功能undefinede引用。我不明白这一点。每个函数都在头文件中声明了正确的文件main.c.
我希望有人能帮助我解决这个错误。 那么,关于这个疑问的任何其他问题可以随意询问评论。
问候
好的,问题解决了。 .c和.h文件中的某些函数签名是不同的。而且我在.h文件中定义了变量。 – 2013-03-25 21:59:15