webForumDet fria alternativet

Få kod att kompilera med g++ istället för gcc

C/C++

2 svar · 423 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Frågan#1

Bifogad c-fil går att kompilera med gcc (gcc -c canbus.c) men inte med g++ (g++ -c canbus.c). Då får jag följande fel:

# g++ -c canbus.c
canbus.c: In function `int canClose()':
canbus.c:66: error: `close' undeclared (first use this function)
canbus.c:66: error: (Each undeclared identifier is reported only once for each
function it appears in.)
canbus.c: In function `int canRead(canFrame*)':
canbus.c:71: error: `read' undeclared (first use this function)
canbus.c: In function `int canWrite(char*)':
canbus.c:75: error: `write' undeclared (first use this function)

Close, read och write är funktioner deklarerade i fcntl.h.
Jag förstår att i c++ så ska man använda FILE* som file handler men då felar resten av koden.

Jag skulle verkligen behöva få denna kod att kompilera med g++ alternativt en lösning på hur man länkar två objektfiler där en är kompilerad med g++ och en i gcc. Jag fick inte till det (fick felet, undefinied reference to [funktioner som finns i canbus.o).

Tacksam för all hjälp!

Medlem sedan juli 2004181 inlägg
#2

read/write och open är definierade i unistd.h.

Medlem sedan sep. 20005 700 inlägg
#3

Svårare än att inkludera unistd.h (vid kompilering med g++) var det inte!
Tack!

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)