Undefined reference to functions using multiple files [duplicate] - c++

This question already has answers here:
What is an undefined reference/unresolved external symbol error and how do I fix it?
(39 answers)
How does the compilation/linking process work?
(5 answers)
Closed 2 years ago.
I'm new to C++ and I'm trying to implement all functions in a separate Functions.cpp file and calling them in the main.cpp file defining all the function declarations on the top. Both Main and the Functions file are in the same folder (sources).
But I keep getting the error undefined reference to my functions. I'm using CodeBlocks 20.30.
somebody, please help.
Main.cpp file
Functions.cpp file
Error

Related

#include<math.h> not working in vscode (ubuntu) [duplicate]

This question already has answers here:
Undefined reference to sqrt (or other mathematical functions)
(5 answers)
Undefined reference to pow( ) in C, despite including math.h [duplicate]
(1 answer)
What is an undefined reference/unresolved external symbol error and how do I fix it?
(39 answers)
Why do you have to link the math library in C?
(14 answers)
Closed last year.
I just installed ubuntu via dual boot on my laptop and further installed vscode along with build-essenttial command.
Everything is working fine in my current knowledge but in any code where #include<math.h> is used and inside main function pow() is used. Vs code is giving this error. I have tried every possible thing but can't resolve it.
image :

g++ 'undefined reference' error when function is already defined [duplicate]

This question already has answers here:
What is an undefined reference/unresolved external symbol error and how do I fix it?
(39 answers)
Closed 2 years ago.
I have a static library, libmylib.a, which contains lots of pre-compiled objects. All the header scripts for these object are stored in /path/to/includes/. I am compiling my main script, BACnetSearch.cpp using g++ with the line below:
g++ BACnetSearch.cpp -I/path/to/includes/ -L/path/to/libraries/ -lmylib
All functions used from the library work except one, which gives the undefined reference to 'function_name'. I have checked the function has been instantiated in the appropriate header file, exists within an object in the library, and I have included it at the top of my script. The library is BACnet, so assuming the release has no bugs, where do I start looking to fix this.
Any other info you need just ask I will try to add. Thanks :)
EDIT: Error message received:
/tmp/ccDIISDz.o: In function `main':
BACnetSearch.cpp:(.text+0x67e): undefined reference to `bvlc_receive'
collect2: error: ld returned 1 exit status
EDIT 2: Auto-marked as answered elsewhere, then linked to a generic question with too many possible problems. Only possibility is that when the library is compiled, the order scripts are compiled in causes this error based from scripts dependencies on each other.
You can always start by checking that the function has been implemented. It is a common mistake to defined a prototype like so:
int isLarger();
And never implement the function, and in that case you get isLarger is not defined errors....
Looking at their site perhaps you should compile the code with a make file and like so:
make BACDL_DEFINE=-DBACDL_MSTP=1 clean all

g++ linker is unable to locate functions despite header inclusion [duplicate]

This question already has answers here:
Why can templates only be implemented in the header file?
(17 answers)
Closed 5 years ago.
I have 4 files world.cpp, world.hpp, Helpers/tools.cpp, Helpers/tools.hpp.
wrold.cpp and tools.cpp include their respective headers and world.hpp includes tools.hpp
world.hpp/cpp use structures defined in tools.hpp/cpp
on my CMake file I have added
target_sources(voxel-world PUBLIC ${PROJECT_SOURCE_DIR}/Helpers/tools.cpp)
and
target_sources(voxel-world PUBLIC ${PROJECT_SOURCE_DIR}/World.cpp)
So, to my understading, the generated make file should attempt to link everything properly.
However when I attempt to compile my program I get the error message:
CMakeFiles/voxel-world.dir/source/World.cpp.o: In function `Chunk_Holder::Chunk_Holder()':
World.cpp:(.text+0x112a): undefined reference to `cirArray<cirArray<cirArray<Chunk*> > >::cirArray()'
CMakeFiles/voxel-world.dir/source/World.cpp.o: In function `Chunk_Holder::Chunk_Holder(int, int, int, World*)':
World.cpp:(.text+0x117c): undefined reference to `cirArray<cirArray<cirArray<Chunk*> > >::cirArray()'
World.cpp:(.text+0x11a2): undefined reference to `cirArray<cirArray<cirArray<Chunk*> > >::cirArray(unsigned int)'
World.cpp:(.text+0x11ee): undefined reference to `cirArray<cirArray<Chunk*> >::cirArray(unsigned int)'
...
...
I am not sure why the linker is failing to find these declarations, since the include statements are on each file. What have I missed?
The problem was caused because cirArray is a templated class, and apparently the compiler is unable to generate the relevant code if the implementation is in the .cpp file.
The solution is thus to move the class implementation into the header.

Code::Blocks winmain#16 after creating a class [duplicate]

This question already has answers here:
undefined reference to `WinMain#16'
(7 answers)
What is an undefined reference/unresolved external symbol error and how do I fix it?
(39 answers)
Closed 8 years ago.
I always get this error 'Undefined reference to WinMain#16' after creating a class in Code::Blocks. I have to restart it to make the program works.
Why ?
Thank you!
If you have only one file - your class - and you trying to compile it, you will get this error because file don't have int main() function. It's required by linker to create executable (start point of program).
If you have project with classes, you must have one main function, for example in main.cpp file :)
Also, check that you selected a Console application - GUI (Windows application) neeed WinMain function instead of classical main.
Of course, this is about normal program - library have other requirements.

How to use GLUT in DEV C++? [duplicate]

This question already has answers here:
What is an undefined reference/unresolved external symbol error and how do I fix it?
(39 answers)
Closed 7 years ago.
The compiler throws errors like:
" [Linker error] main.o:main.cpp:(.text+0x972): undefined reference to `_imp__glutReshapeFunc#4' "
Do you know how to use GLUT in Dev C++?
DevC++ is seriously outdated. I recommend using Codeblocks instead.
The error line you quoted simply indicated, that the linker is missing the functions of the GLUT library. Including the headers is not enough (they just provide the compiler with sort of an index). But the linker still needs to be told which libraries to actually link against.