Message-ID: <000a01be111e$3c3749e0$c5223182@marst96.m.resnet.pitt.edu> From: "mark reed" To: Subject: undefined references and .h's .o's .a's Date: Mon, 16 Nov 1998 00:01:56 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.72.3110.1 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Reply-To: djgpp AT delorie DOT com I have a main.cpp that includes a foo.h file. In that .h file, are a bunch of function declarations. like this void foo(); in a foo.cpp file, i define the functions from foo.h. Now if i include foo.h from main.cpp, it gives me lots of undefined references. So then i compiled foo.cpp, using gcc -c foo.cpp to create a .o file. then I did gcc -o main.exe main.cpp foo.o, and still get the undefinced references. then i made a library, using ar rvs foo.a foo.o and then did gcc -o main.exe main.cpp foo.a, which also didnt work. Also did gcc -o main.exe main.cpp foo.cpp didnt work either. Then i made every function declaration and definition extern void foo(); but still nothing works. Then just now i created test files, err.cpp argh.h and argh.cpp, to see if i would get undefined references again and i did gcc -o err.exe err.cpp argh.cpp and it worked. so i am thinking that the problem is my typedefs and structs - typedef float matrix[4][4] and struct vecType { float x,y,z; } vector,*vectorPtr an example function: void addVectors(vectorPtr dest, vectorPtr left, vectorPtr right); undefined reference to 'addVectors(vecType *, vecType *, vecType *)' <-- the error when these two guys(typedef or struct) are passed as parameters to a function, then that function becomes an undefined reference in the main.cpp file. But if i put a function like this in the foo.cpp file, it is fine to use in the main.cpp file. void thisworks(int a); and both the main cpp file, and the other one include a separate .h file that does the struct and typedef anybody know what is wrong? thanks Mark - marst96 AT pitt DOT edu