-1

I just moved my project from my PC into a virtual machine running Debian. My project contains some classes and headers, how can I compile it with G++?

ls -l
-rw-r--r-- 1 root root 2369 Nov 27 20:17 Card.cpp
-rw-r--r-- 1 root root 1299 Nov 27 15:56 Deck.cpp
-rw-r--r-- 1 root root 6529 Nov 27 20:58 Game.cpp
-rw-r--r-- 1 root root 4639 Nov 27 20:12 Hand.cpp
drwxr-xr-x 2 root root 4096 Nov 27 20:00 inc
-rw-r--r-- 1 root root   19 Nov 18 10:35 main.cpp
-rw-r--r-- 1 root root 5113 Nov 27 20:05 Player.cpp
drwxr-xr-x 2 root root 4096 Nov 28 07:58 src

/src ls -l
-rw-r--r-- 1 root root 490 Nov 28 07:58 reviiyot.cpp (this is the main)

/inc ls -l
-rw-r--r-- 1 root root 1506 Nov 26 17:31 Card.h
-rw-r--r-- 1 root root  842 Nov 25 12:25 Deck.h
-rw-r--r-- 1 root root  830 Nov 26 23:55 Game.h
-rw-r--r-- 1 root root  774 Nov 27 15:55 Hand.h
-rw-r--r-- 1 root root 2383 Nov 27 20:00 Player.h
Elad Cohen
  • 453
  • 3
  • 16

2 Answers2

1

You have to link all the required sources together:

eg.:

g++ src/reviiyot.cpp main.cpp Hand.cpp Game.cpp Deck.cpp Card.cpp  Player.cpp -Wall -o MyProgram

Alternatively, you can create a Makefile.

Community
  • 1
  • 1
Adam Hunyadi
  • 1,890
  • 16
  • 32
0

You need to specify both all your .cpp files as well as the path to the include directory, so in your case the compile command could look something like

g++ src/reviiyot.cpp -I inc/ ./*.cpp -o executableFile

Note: it would be more natural to place the implementation files of your headers (the .cpp files, except your main) inside the src/ directory and leave the main.cpp inside the main directory

Polb
  • 640
  • 2
  • 8
  • 21