Sida 1 av 2

Konstiga felmeddelanden från GCC.

Postat: 26 september 2016, 23:11:47
av TomasL
Jag får en hel del av dessa, vilket jag för mitt liv inte kan begripa:

Kod: Markera allt

warning: implicit declaration of function 'memcpy'
Och koden:

Kod: Markera allt

#include <p32xxxx.h>   // target device
#include <plib.h>      // peripheral libraries
#include <stdlib.h>
#include <string.h>
..................
.................
memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( unsigned ) pxQueue->uxItemSize );
har även prövat med:

Kod: Markera allt

memcpy( ( void * ) pxQueue->pcWriteTo, (const void *) pvItemToQueue, ( size_t ) pxQueue->uxItemSize );
Utan någon som helst skillnad.

Får dessa varningar på en mängd funktioner, såsom; memcpy, strcpy, memset.
Någon som har någon form av ide, över vad som händer.

MPLAB 8.92.00.00 processor är PIC32MX695F512L

Re: Konstiga felmeddelanden från GCC.

Postat: 27 september 2016, 00:28:48
av sodjan
Det vanliga är väl att "implicit declaration" pekar på att det saknas en .h fil.
Den funktion man försöker använda (t.ex. memcpy) saknar deklaration.
Memcpy borde ju/väl vara i stdlib.h, men...

Re: Konstiga felmeddelanden från GCC.

Postat: 27 september 2016, 00:31:10
av TomasL
Nej, den finns i string.h, eller skall finnas.
Det är precis som om att kompilatorn inte hittar string.h av någon anledning, men då tycker man att den borde säga det, då string.h är inkluderad.

Re: Konstiga felmeddelanden från GCC.

Postat: 27 september 2016, 00:36:34
av sodjan
Sorry, menade string.h... :roll:

Kan GCC ge en list fil med h-filerna expanderade? Jag menar så att det
går att faktiskt verifiera att string.h läses in och memcpy deklareras?

Re: Konstiga felmeddelanden från GCC.

Postat: 27 september 2016, 00:38:16
av TomasL
Förmodligen, men får kika på detta i morgon, lär finnas ett direktiv som sparar de pre-processade filerna

Re: Konstiga felmeddelanden från GCC.

Postat: 27 september 2016, 00:44:16
av sodjan
Jag har sett förslag på "-E -dI" eller "-M"...

Re: Konstiga felmeddelanden från GCC.

Postat: 28 september 2016, 21:53:05
av TomasL
Problemet löst.
Uppenbarligen kan inte GCC skilja mellan includefiler.

Om man skriver:
#include <file.h>

Och det finns en fil med samma namn i projektet, så inkluderas den i stället för den lib-fil man tänkt sig.

Re: Konstiga felmeddelanden från GCC.

Postat: 28 september 2016, 22:00:54
av baron3d
Jaha, då har någon varit framme och och gjort ett eget sträng-bibliotek.

Re: Konstiga felmeddelanden från GCC.

Postat: 28 september 2016, 22:31:35
av pbgp
Mystiskt.

Använder du -I optionen till gcc? Isåfall söks den före standard-sökvägen. Lite knasigt kan tyckas, men att ha en egen string.h är också lite knasigt, som bäddat för missförstånd.

Re: Konstiga felmeddelanden från GCC.

Postat: 28 september 2016, 22:40:16
av TomasL
Använder vad jag vet

Kod: Markera allt

-g -Wparentheses -fno-builtin -funsigned-char -Wall -Wno-pointer-sign
Så här ser den kompletta kommandoraden ut:

Kod: Markera allt

Executing: "D:\Microchip\mplabc32\v2.02\bin\pic32-gcc.exe" -mprocessor=32MX695F512L -x c -c "main.c" -o"Output\main.o" -MMD -MF"Output\main.d" -I"aql_reglersystem_0_2_code" -I".." -I"..\Alpha_bus" -I"..\AQL_Bus" -I"..\Modbus" -I"..\adio" -I"..\asm" -I"..\display" -I"..\reg" -I"..\COMMON" -I"..\spi" -I"..\MB_Master\mbslave\include" -I"..\MB_Master\mbslave\internal" -I"..\MB_Master\mbslave\include\internal" -I"..\MB_Master\mbslave\functions" -I"..\Master" -I"..\v_uart" -I"..\pmp" -I"..\FreeRTOS\Source\Portable\MemMang" -I"..\MB_Master\XXX" -I"..\MB_Master\mbmaster\ascii" -I"..\MB_Master\mbmaster\rtu" -I"..\MB_Master\mbmaster\functions" -I"..\MB_Master\mbmaster\include\internal" -I"..\MB_Master\mbmaster\include\common" -I"..\MB_Master\mbmaster\include" -I"..\FreeRTOS\Source\include" -I"..\FreeRTOS\Source\portable\MPLAB\PIC32MX" -D__DEBUG -g -Wparentheses -fno-builtin -funsigned-char -Wall -Wno-pointer-sign
Uppenbarligen verkar det vara något man inte styr över själv.

Re: Konstiga felmeddelanden från GCC.

Postat: 29 september 2016, 10:44:49
av lillahuset
Det är ditt IDE som skapar röran. Använder du en makefil styr du själv.

Re: Konstiga felmeddelanden från GCC.

Postat: 29 september 2016, 11:05:28
av TomasL
Ja, jag har förstått det, nåväl, vet man om det, så är det ju lätt att undvika.

Re: Konstiga felmeddelanden från GCC.

Postat: 29 september 2016, 11:06:42
av TomasL
pbgp skrev:men att ha en egen string.h är också lite knasigt, som bäddat för missförstånd.
Normala string.h är inte säker, och ibland vill man kanske ha en säker funktion.

Re: Konstiga felmeddelanden från GCC.

Postat: 29 september 2016, 11:20:19
av pbgp
Ja, men då får man väl se till att implementera en memcpy i den också _och_ se till att länkaren hittar rätt.

Re: Konstiga felmeddelanden från GCC.

Postat: 29 september 2016, 11:50:14
av lillahuset
:tumupp: