Ive got these error messages:
Error 1 error LNK2019: unresolved external symbol "public: void __thiscall ArrayIntStorage::sortOwn(void)" (?sortOwn@ArrayIntStorage@@QAEXXZ) referenced in function _main G:\08227\ACW\MAIN\08227_ACW2_Test_Harnesses_2010-11\C_Style_Array\main.obj C_Style_Array
Error 2 error LNK2019: unresolved external symbol "public: void __thiscall ArrayIntStorage::sortStd(void)" (?sortStd@ArrayIntStorage@@QAEXXZ) referenced in function _main G:\08227\ACW\MAIN\08227_ACW2_Test_Harnesses_2010-11\C_Style_Array\main.obj C_Style_Array
Error 3 error LNK2019: unresolved external symbol "class std::basic_ostream > & __cdecl operator<<(class std::basic_ostream > &,class ArrayIntStorage const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVArrayIntStorage@@@Z) referenced in function _main G:\08227\ACW\MAIN\08227_ACW2_Test_Harnesses_2010-11\C_Style_Array\main.obj C_Style_Array
Error 4 error LNK2019: unresolved external symbol "class std::basic_istream > & __cdecl operator>>(class std::basic_istream > &,class ArrayIntStorage &)" (??5@YAAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV01@AAVArrayIntStorage@@@Z) referenced in function _main G:\08227\ACW\MAIN\08227_ACW2_Test_Harnesses_2010-11\C_Style_Array\main.obj C_Style_Array
Error 5 error LNK2019: unresolved external symbol "public: bool __thiscall ArrayIntStorage::setReadSort(bool)" (?setReadSort@ArrayIntStorage@@QAE_N_N@Z) referenced in function _main G:\08227\ACW\MAIN\08227_ACW2_Test_Harnesses_2010-11\C_Style_Array\main.obj C_Style_Array
Error 6 error LNK1120: 5 unresolved externals G:\08227\ACW\MAIN\08227_ACW2_Test_Harnesses_2010-11\C_Style_Array\Debug\C_Style_Array.exe 1 1 C_Style_Array
and I dont know whats going on, I wonder if ive missed something? I am new to this and Its not giving me any line numbers so Im not sure which code to give you so Ill give you this part
#include <fstream>
#include <iostream>
using namespace std;
#include "ArrayIntStorage.h"
int main(int argc, char **argv) {
ifstream fin1("ACW2_data.txt");
ofstream out1("1-arrayUnsortedRead.txt");
ofstream out2("2-arrayUnsortedRead-thenSTDSort.txt");
if(!fin1.is_open())
{
cout << "FAIL" << endl;
return 1;
}
ArrayIntStorage arrayStorage1;
arrayStorage1.setReadSort(false); // do not read sort
// read in int values into data structure
fin1 >> arrayStorage1;
// output int values in data structure to file
out1 << arrayStorage1;
// sort data structure using std
arrayStorage1.sortStd();
// output int values in data structure to file
out2 << arrayStorage1;
fin1.close();
out1.close();
out2.close();
Your linker (part of the compiler) cannot find where ArrayIntStorage::sortOwn()
is defined.
This usually occurs either:
ArrayIntStorage::sortOwn()
is in another .c file which you forgot to tell the compiler about (and so wasn't compiled),sortOwn()
, and have only declaired it.If its neither of these, or you find these options confusing, please post the header file ArrayIntStorage.h
and the corresponding .c file (should there be one).
This is a linker error and can be easily resolved once you understand the process.
By #include
-ing the header file in your source code, that lets the compiler know about the definitions it requires.
However, there's an extra step needed. You have to link all the various object files and libraries together.
That's because, while the header contains information about the ArrayIntStorage
stuff, the actual code for it is elsewhere. That's what's bought in at the link stage.
Basically, you need to ensure that the object file or library is included in your build process.
For example, the following gcc
command will include the abc.o object module and bring in anything needed from the libxyz.a
archive library:
gcc -o myprog myprog.c abc.o -L/path/to/libs -lxyz
It may also be done differently for different environments. For example, an IDE will most likely have it under project settings of some sort.
This answer provides some more information of the compiling and linking processes common in a lot of environments.
You forgot to link the library where ArrayIntStorage's functions are defined. Read the documentation for that library to find out how to use it in your project.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With