Comment puis-je comstackr mon programme C ++ sous Unix?

Je travaille sur un projet d’école en C ++ et j’utilise notre serveur unix d’école pour l’écrire selon les instructions du professeur. J’utilise vim et g ++ pour comstackr.

Ce projet est construit à partir d’un autre projet, Lab0, que je n’ai pas eu de mal à construire après une aide du TA, mais j’ai dû faire des choses étranges pour le construire (fichier #include LinkedSortedList.cpp au bas de LinkedSortedList.h ). Tout le monde dans la classe a fait ce truc bizarre avec le fichier #include .cpp.

Premièrement, voici les fichiers et leur contenu pour Lab0 qui comstack bien:

(Le post ne montre pas mes tabs dans mon makefile mais ils sont là!)

makefile:

main: *.cpp *.h g++ -o LSL main.cpp clean: rm -f *.o LSL* 

Lab0 (Celui qui construit), est comme ceci:

Des dossiers:

main.cpp (PAS basé sur des modèles):

 #include "LinkedSortedList.h" #include  using namespace std; 

SortedList.h (basé sur des modèles): rien

LinkedNode.h (basé sur un modèle):

 #include  using namespace std; 

LinkedSortedList.h (basé sur un modèle):

 #include "SortedList.h" #include "LinkedNode.h" #include  using namespace std; #include "LinkedSortedList.cpp" // At the bottom fo this file above the #endif to get the program to comstack from what the TA told me to do for lab0 due to the templated class. 

LinkedSortedList.cpp (Templated): Rien

Aucun problème pour construire et exécuter ce projet.

Voici mon problème:

Ci-dessous se trouve lab1, celui avec lequel je rencontre des problèmes et Lab1 utilise tous les fichiers de Lab0. Il ajoute simplement Employee.h et Employee.cpp.

Lab1 (Celui qui ne construira pas) est comme ceci:

Des dossiers:

lab1.cpp:

 #include  #include  #include  #include  #include  #include  #include "Employee.h" #include "LinkedSortedList.h" 

SortedList.h (basé sur des modèles): rien

LinkedNode.h (basé sur un modèle):

 #include  using namespace std; 

LinkedSortedList.h (basé sur un modèle):

 #include "SortedList.h" #include "LinkedNode.h" #include "Employee.h" #include  using namespace std; #include "LinkedSortedList.cpp" // At the bottom fo this file above the #endif to get the program to comstack from what the TA told me to do for lab0 due to the templated class. 

LinkedSortedList.cpp (Templated): Rien

Employee.h (NON basé sur un modèle):

 #include  #include  using namespace std; 

Employee.cpp (NON basé sur un modèle):

 #include  #include  

(Le post ne montre pas mes tabs dans mon makefile mais ils sont là!)

 makefile: main: *.cpp *.h g++ -o LSL lab1.cpp clean: rm -f *.o LSL* 

Erreurs je reçois:

Voici les erreurs que je reçois. Il semble que les fichiers Employee.cpp / Employee.h ne soient pas visibles. Des idées??

unixserver:Lab1> make g++ -o LSL lab1.cpp /tmp/ccamnaqx.o: In function createRecord()': lab1.cpp:(.text+0x3fb): undefined reference to Employee::Employee()' lab1.cpp:(.text+0x477): undefined reference to Employee::setLastName(std::basic_ssortingng<char, std::char_traits, std::allocator >)' lab1.cpp:(.text+0x4f2): undefined reference to Employee::setFirstName(std::basic_ssortingng, std::allocator >)' lab1.cpp:(.text+0x589): undefined reference to Employee::setId(int)' lab1.cpp:(.text+0x5ce): undefined reference to Employee::setSalary(int)' lab1.cpp:(.text+0x60e): undefined reference to Employee::setDepartment(std::basic_ssortingng<char, std::char_traits, std::allocator >)' lab1.cpp:(.text+0x67c): undefined reference to Employee::setPhoneNumber(std::basic_ssortingng, std::allocator >)' lab1.cpp:(.text+0x6ea): undefined reference to Employee::setAddress(std::basic_ssortingng<char, std::char_traits, std::allocator >)' lab1.cpp:(.text+0x758): undefined reference to Employee::setHireDate(std::basic_ssortingng, std::allocator >)' lab1.cpp:(.text+0x7c6): undefined reference to `Employee::setEmailAddress(std::basic_ssortingng, std::allocator >)' collect2: ld returned 1 exit status make: * [main] Error 1

Toute aide serait grandement appréciée!

Vous devez comstackr Employee.cpp et le lier à l’exécutable:

 g++ -o LSL lab1.cpp Employee.cpp 

Cela pourrait être la même chose pour LinkedSortedList.cpp (son but n’est pas tout à fait clair pour moi).

Votre fichier makefile pour votre deuxième projet ne comstack que lab1.cpp et pas vos autres fichiers cpp. Vous en avez deux autres (Employee.cpp et LinkSortedList.cpp) que vous devez prendre en compte.

Apprenez également à formater correctement le code ici sur ce site. https://stackoverflow.com/editing-help