Typing make at the command line on Ubuntu gives me the following. Does the project compile for you, with a fresh git pull? I can't believe it does.
instructions2.h:178:16: error: redefinition of ‘struct instruction_seq’
typedef struct instruction_seq {
^
In file included from enumerator.cpp:12:0:
emulator.h:14:8: error: previous definition of ‘struct instruction_seq’
struct instruction_seq {
^
In file included from random_machine.h:4:0,
from enumerator.cpp:13:
instructions2.h:211:3: error: conflicting declaration ‘typedef int instruction_seq’
} instruction_seq;
^
In file included from enumerator.cpp:12:0:
emulator.h:14:8: note: previous declaration as ‘struct instruction_seq’
struct instruction_seq {
^
In file included from enumerator.cpp:13:0:
random_machine.h: In member function ‘void random_machine::instruction(instruction)’:
random_machine.h:81:30: error: no matching function for call to ‘emulator<random_machine>::instruction(random_machine&, instruction&)’
emu.instruction(*this, op);
^
In file included from enumerator.cpp:12:0:
emulator.h:183:8: note: candidate: void emulator<machine>::instruction(machine&, Operations, AddrMode) const [with machine = random_machine]
void instruction(machine& m, Operations op, AddrMode mode) const {
^
emulator.h:183:8: note: candidate expects 3 arguments, 2 provided
In file included from enumerator.cpp:14:0:
abstract_machine.h: In member function ‘void abstract_machine::instruction(instruction)’:
abstract_machine.h:98:30: error: no matching function for call to ‘emulator<abstract_machine>::instruction(abstract_machine&, instruction&)’
emu.instruction(*this, op);
^
In file included from enumerator.cpp:12:0:
emulator.h:183:8: note: candidate: void emulator<machine>::instruction(machine&, Operations, AddrMode) const [with machine = abstract_machine]
void instruction(machine& m, Operations op, AddrMode mode) const {
^
emulator.h:183:8: note: candidate expects 3 arguments, 2 provided
enumerator.cpp: In function ‘void enumerate_recursive(uint32_t, uint32_t, const random_machine&, const random_machine&, instruction_seq, int, std::multimap<unsigned int, instruction_seq>&, const std::unordered_set<instruction_seq>&)’:
enumerator.cpp:152:35: error: no matching function for call to ‘random_machine::instruction(opcode&)’
m1_copy.instruction(opcodes[i]);
^
In file included from enumerator.cpp:13:0:
random_machine.h:79:8: note: candidate: void random_machine::instruction(instruction)
void instruction(instruction op) {
^
random_machine.h:79:8: note: no known conversion for argument 1 from ‘opcode’ to ‘instruction’
enumerator.cpp:153:35: error: no matching function for call to ‘random_machine::instruction(opcode&)’
m2_copy.instruction(opcodes[i]);
^
In file included from enumerator.cpp:13:0:
random_machine.h:79:8: note: candidate: void random_machine::instruction(instruction)
void instruction(instruction op) {
^
random_machine.h:79:8: note: no known conversion for argument 1 from ‘opcode’ to ‘instruction’
enumerator.cpp: In function ‘int process_sequences(std::vector<instruction_seq>&, process_hashes_thread_context&, bool)’:
enumerator.cpp:252:32: error: no matching function for call to ‘random_machine::instruction(const instruction_seq&)’
machine.instruction(seq);
^
In file included from enumerator.cpp:13:0:
random_machine.h:79:8: note: candidate: void random_machine::instruction(instruction)
void instruction(instruction op) {
^
random_machine.h:79:8: note: no known conversion for argument 1 from ‘const instruction_seq’ to ‘instruction’
enumerator.cpp:256:30: error: no matching function for call to ‘random_machine::instruction(const instruction_seq&)’
machine.instruction(seq);
^
In file included from enumerator.cpp:13:0:
random_machine.h:79:8: note: candidate: void random_machine::instruction(instruction)
void instruction(instruction op) {
^
random_machine.h:79:8: note: no known conversion for argument 1 from ‘const instruction_seq’ to ‘instruction’
enumerator.cpp:259:31: error: no matching function for call to ‘random_machine::instruction(const instruction_seq&)’
machine2.instruction(seq);
^
In file included from enumerator.cpp:13:0:
random_machine.h:79:8: note: candidate: void random_machine::instruction(instruction)
void instruction(instruction op) {
^
random_machine.h:79:8: note: no known conversion for argument 1 from ‘const instruction_seq’ to ‘instruction’
enumerator.cpp:284:22: error: no matching function for call to ‘abstract_machine::instruction(const instruction_seq&)’
m.instruction(seq);
^
In file included from enumerator.cpp:14:0:
abstract_machine.h:96:8: note: candidate: void abstract_machine::instruction(instruction)
void instruction(instruction op) {
^
abstract_machine.h:96:8: note: no known conversion for argument 1 from ‘const instruction_seq’ to ‘instruction’
In file included from random_machine.h:4:0,
from enumerator.cpp:13:
instructions2.h: At global scope:
instructions2.h:213:25: warning: ‘instructions’ defined but not used [-Wunused-variable]
static instruction_info instructions[] = {
^
Makefile:3: recipe for target 'enumerator' failed
make: *** [enumerator] Error 1
Typing make at the command line on Ubuntu gives me the following. Does the project compile for you, with a fresh git pull? I can't believe it does.