Public Group

How to add implementation files to a project in dev-c++

This topic is 3475 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

Hey, I'm currently trying to compile code from a book. (OpenGL superbible) It uses a header file which links to several implementation files. When I just include the header file in my code I get a linker error [Linker Error] undefined reference to 'gltTransformPoint'. I think I have to add the source code that containts the implementation files to my project, but I don't know how to do that, I'm using dev-c++5. The implementation files reside in a folder in the cd that came with the book. Do I specify this folder in the project options, or what do I do?? Thanks

Share on other sites
Quote:
 Original post by Googol PL3XHave you linked to the header files or the libs?

I wouldn't know how to do that, all programs I have looked at so far haven't required seperate files. I know the location of the folder with the implementations, but I don't know how to link that folder to my project. Any suggestions will be appreciated!

Share on other sites
I'm not so familiar with OpenGL and Dev c++ (rather directx and vsc++) but what you need to do is download the openGL SDK and then you can link the libs and headers to your program, then it should all compile nicely.

Share on other sites
Sorry, I wasn't being very clear, I got openGL running and everything, that's not a problem. It's just that the example uses a special vector class that the author wrote his own header file for <gltools.h>, i think it defines some special data structures. I just wanted to know generally how to link implementation files that are located in a seperate folder apart from the source file with the main() function. Hope I made my problem a bit more clear.

Also if I understand correctly library files (or pre-compiled files) got like a .o extension, i looked for those files in the folder, but didn't find them.

Share on other sites
I assume there is either a gltools.c or gltools.cpp file that came with gltools.h. You will need to add that file to the project.

Share on other sites
There's either

- a matching source file (.c or .cpp) to the gltools.h, which you have to compile (just add it to the project using the "Project" menu)
- a matching already-compiled file (called library, ends with .a or .lib), which you have to link to your EXE file (Project options > Parameters > Add library/object)

Hope that helps. My Dev-C++ is in German, but I think you'll find the roughly translated menu points ;)

Share on other sites
Quote:
 Original post by AndiDogThere's either- a matching source file (.c or .cpp) to the gltools.h, which you have to compile (just add it to the project using the "Project" menu)- a matching already-compiled file (called library, ends with .a or .lib), which you have to link to your EXE file (Project options > Parameters > Add library/object)Hope that helps. My Dev-C++ is in German, but I think you'll find the roughly translated menu points ;)

There is no matching source file unfortunately nor a matching library file. I have checked both the folder where the header file is located and the folder with the main() source file.

The specific error that I get when trying to compile is

 [Linker error] undefined reference to gltTransformPoint(float const*, float const*, float*)'

the function gltTransformPoint is implemented in a file called vectorMath.c and declared in the header file gltools.h

//The following code is in gltools.h// vector functions in VectorMath.c void gltAddVectors(const GLTVector3 vFirst, const GLTVector3 vSecond, GLTVector3 vResult);void gltSubtractVectors(const GLTVector3 vFirst, const GLTVector3 vSecond, GLTVector3 vResult);void gltScaleVector(GLTVector3 vVector, const GLfloat fScale);GLfloat gltGetVectorLengthSqrd(const GLTVector3 vVector);GLfloat gltGetVectorLength(const GLTVector3 vVector);void gltNormalizeVector(GLTVector3 vNormal);void gltGetNormalVector(const GLTVector3 vP1, const GLTVector3 vP2, const GLTVector3 vP3, GLTVector3 vNormal);void gltCopyVector(const GLTVector3 vSource, GLTVector3 vDest);GLfloat gltVectorDotProduct(const GLTVector3 u, const GLTVector3 v);void gltVectorCrossProduct(const GLTVector3 vU, const GLTVector3 vV, GLTVector3 vResult);void gltTransformPoint(const GLTVector3 vSrcPoint, const GLTMatrix mMatrix, GLTVector3 vPointOut);`

Apart from vectorMath.c there are also other files needed by gltools.h, should I add all these files to my project, or add them as include statements??

Share on other sites
You should add them to your project. Don't use the include statement, this isn't usual for source code files (only for headers!).

Share on other sites
Quote:
 Original post by AndiDogYou should add them to your project. Don't use the include statement, this isn't usual for source code files (only for headers!).

These files are all conveniently located in a folder. Is it possible to add this folder to my project, or at least make the files within the folder visible to my project. I imagine if thats possible that would be easier than adding like ten source files.

• 9
• 23
• 10
• 19