i got this error when i run make -f makefile.unix:
makefile.unix:192: recipe for target 'obj/checkpoints.o' failed
make: *** [obj/checkpoints.o] Error 1
on what system are you compiling?
And what is the Error that got posted (scroll up to see the actual error mentioned, what you posted is just the end-summary),
I need more info to help.
Compiling on ubuntu 18.04 desktop
D_FORTIFY_SOURCE=2 -MMD -MF obj/checkpoints.d -o obj/checkpoints.o checkpoints.cpp
In file included from main.h:8:0,
from checkpoints.cpp:10:
bignum.h:51:24: error: invalid use of incomplete type BIGNUM {aka struct bignum_st}
class CBigNum : public BIGNUM
^~~~~~
In file included from /usr/include/openssl/bn.h:32:0,
from bignum.h:10,
from main.h:8,
from checkpoints.cpp:10:
/usr/include/openssl/ossl_typ.h:80:16: note: forward declaration of BIGNUM {aka struct bignum_st}
typedef struct bignum_st BIGNUM;
^~~~~~~~~
In file included from main.h:8:0,
from checkpoints.cpp:10:
bignum.h: In constructor CBigNum::CBigNum():
bignum.h:56:9: error: BN_init was not declared in this scope
BN_init(this);
^~~~~~~
bignum.h:56:9: note: suggested alternative: BN_print
BN_init(this);
^~~~~~~
BN_print
bignum.h: In copy constructor CBigNum::CBigNum(const CBigNum&):
bignum.h:61:9: error: BN_init was not declared in this scope
BN_init(this);
^~~~~~~
bignum.h:61:9: note: suggested alternative: BN_print
BN_init(this);
^~~~~~~
BN_print
bignum.h:62:30: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to BIGNUM* BN_copy(BIGNUM*, const BIGNUM*)
if (!BN_copy(this, &b))
^
bignum.h:64:31: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to void BN_clear_free(BIGNUM*)
BN_clear_free(this);
^
bignum.h: In member function CBigNum& CBigNum::operator=(const CBigNum&):
bignum.h:71:30: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to BIGNUM* BN_copy(BIGNUM*, const BIGNUM*)
if (!BN_copy(this, &b))
^
bignum.h: In destructor CBigNum::~CBigNum():
bignum.h:78:27: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to void BN_clear_free(BIGNUM*)
BN_clear_free(this);
^
bignum.h: In constructor CBigNum::CBigNum(signed char):
bignum.h:82:35: error: BN_init was not declared in this scope
CBigNum(signed char n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^~~~~~~
bignum.h:82:35: note: suggested alternative: BN_print
CBigNum(signed char n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(short int):
bignum.h:83:35: error: BN_init was not declared in this scope
CBigNum(short n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^~~~~~~
bignum.h:83:35: note: suggested alternative: BN_print
CBigNum(short n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(int):
bignum.h:84:35: error: BN_init was not declared in this scope
CBigNum(int n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^~~~~~~
bignum.h:84:35: note: suggested alternative: BN_print
CBigNum(int n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(long int):
bignum.h:85:35: error: BN_init was not declared in this scope
CBigNum(long n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^~~~~~~
bignum.h:85:35: note: suggested alternative: BN_print
CBigNum(long n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(int64):
bignum.h:86:35: error: BN_init was not declared in this scope
CBigNum(int64 n) { BN_init(this); setint64(n); }
^~~~~~~
bignum.h:86:35: note: suggested alternative: BN_print
CBigNum(int64 n) { BN_init(this); setint64(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(unsigned char):
bignum.h:87:35: error: BN_init was not declared in this scope
CBigNum(unsigned char n) { BN_init(this); setulong(n); }
^~~~~~~
bignum.h:87:35: note: suggested alternative: BN_print
CBigNum(unsigned char n) { BN_init(this); setulong(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(short unsigned int):
bignum.h:88:35: error: BN_init was not declared in this scope
CBigNum(unsigned short n) { BN_init(this); setulong(n); }
^~~~~~~
bignum.h:88:35: note: suggested alternative: BN_print
CBigNum(unsigned short n) { BN_init(this); setulong(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(unsigned int):
bignum.h:89:35: error: BN_init was not declared in this scope
CBigNum(unsigned int n) { BN_init(this); setulong(n); }
^~~~~~~
bignum.h:89:35: note: suggested alternative: BN_print
CBigNum(unsigned int n) { BN_init(this); setulong(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(long unsigned int):
bignum.h:90:35: error: BN_init was not declared in this scope
CBigNum(unsigned long n) { BN_init(this); setulong(n); }
^~~~~~~
bignum.h:90:35: note: suggested alternative: BN_print
CBigNum(unsigned long n) { BN_init(this); setulong(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(uint64):
bignum.h:91:35: error: BN_init was not declared in this scope
CBigNum(uint64 n) { BN_init(this); setuint64(n); }
^~~~~~~
bignum.h:91:35: note: suggested alternative: BN_print
CBigNum(uint64 n) { BN_init(this); setuint64(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(uint256):
bignum.h:92:35: error: BN_init was not declared in this scope
explicit CBigNum(uint256 n) { BN_init(this); setuint256(n); }
^~~~~~~
bignum.h:92:35: note: suggested alternative: BN_print
explicit CBigNum(uint256 n) { BN_init(this); setuint256(n); }
^~~~~~~
BN_print
bignum.h: In constructor CBigNum::CBigNum(const std::vector&):
bignum.h:96:9: error: BN_init was not declared in this scope
BN_init(this);
^~~~~~~
bignum.h:96:9: note: suggested alternative: BN_print
BN_init(this);
^~~~~~~
BN_print
bignum.h: In member function void CBigNum::setulong(long unsigned int):
bignum.h:102:33: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_set_word(BIGNUM*, long unsigned int)
if (!BN_set_word(this, n))
^
bignum.h: In member function long unsigned int CBigNum::getulong() const:
bignum.h:108:32: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to long unsigned int BN_get_word(const BIGNUM*)
return BN_get_word(this);
^
bignum.h: In member function unsigned int CBigNum::getuint() const:
bignum.h:113:32: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to long unsigned int BN_get_word(const BIGNUM*)
return BN_get_word(this);
^
bignum.h: In member function int CBigNum::getint() const:
bignum.h:118:43: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to long unsigned int BN_get_word(const BIGNUM*)
unsigned long n = BN_get_word(this);
^
bignum.h:119:33: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_is_negative(const BIGNUM*)
if (!BN_is_negative(this))
^
In file included from main.h:8:0,
from checkpoints.cpp:10:
bignum.h: In member function void CBigNum::setint64(int64):
bignum.h:167:37: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 3 to BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)
BN_mpi2bn(pch, p - pch, this);
^
bignum.h: In member function void CBigNum::setuint64(uint64):
bignum.h:194:37: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 3 to BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)
BN_mpi2bn(pch, p - pch, this);
^
bignum.h: In member function void CBigNum::setuint256(uint256):
bignum.h:222:37: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 3 to BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)
BN_mpi2bn(pch, p - pch, this);
^
bignum.h: In member function uint256 CBigNum::getuint256() const:
bignum.h:227:50: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_bn2mpi(const BIGNUM*, unsigned char*)
unsigned int nSize = BN_bn2mpi(this, NULL);
^
bignum.h:231:32: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_bn2mpi(const BIGNUM*, unsigned char*)
BN_bn2mpi(this, &vch[0]);
^
bignum.h: In member function void CBigNum::setvch(const std::vector&):
bignum.h:252:46: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 3 to BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)
BN_mpi2bn(&vch2[0], vch2.size(), this);
^
bignum.h: In member function std::vector CBigNum::getvch() const:
bignum.h:257:50: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_bn2mpi(const BIGNUM*, unsigned char*)
unsigned int nSize = BN_bn2mpi(this, NULL);
^
bignum.h:261:32: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_bn2mpi(const BIGNUM*, unsigned char*)
BN_bn2mpi(this, &vch[0]);
^
bignum.h: In member function CBigNum& CBigNum::SetCompact(unsigned int):
bignum.h:297:36: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_set_word(BIGNUM*, long unsigned int)
BN_set_word(this, nWord);
^
bignum.h:301:36: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_set_word(BIGNUM*, long unsigned int)
BN_set_word(this, nWord);
^
bignum.h:302:46: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_lshift(BIGNUM*, const BIGNUM*, int)
BN_lshift(this, this, 8*(nSize-3));
^
bignum.h:304:40: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to void BN_set_negative(BIGNUM*, int)
BN_set_negative(this, fNegative);
^
In file included from bignum.h:10:0,
from main.h:8,
from checkpoints.cpp:10:
bignum.h: In member function unsigned int CBigNum::GetCompact() const:
bignum.h:310:30: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_num_bits(const BIGNUM*)
unsigned int nSize = BN_num_bytes(this);
^
In file included from main.h:8:0,
from checkpoints.cpp:10:
bignum.h:313:40: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to long unsigned int BN_get_word(const BIGNUM*)
nCompact = BN_get_word(this) << 8*(3-nSize);
^
bignum.h:317:45: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_rshift(BIGNUM*, const BIGNUM*, int)
BN_rshift(&bn, this, 8*(nSize-3));
^
bignum.h:318:39: error: cannot convert CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to long unsigned int BN_get_word(const BIGNUM*)
nCompact = BN_get_word(&bn);
^
bignum.h:328:41: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_is_negative(const BIGNUM*)
nCompact |= (BN_is_negative(this) ? 0x00800000 : 0);
^
In file included from main.h:8:0,
from checkpoints.cpp:10:
bignum.h: In member function std::__cxx11::string CBigNum::ToString(int) const:
bignum.h:369:35: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to void BN_set_negative(BIGNUM*, int)
BN_set_negative(&bn, false);
^
bignum.h:372:29: error: cannot convert CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_cmp(const BIGNUM*, const BIGNUM*)
if (BN_cmp(&bn, &bn0) == 0)
^
bignum.h:374:32: error: cannot convert CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_cmp(const BIGNUM*, const BIGNUM*)
while (BN_cmp(&bn, &bn0) > 0)
^
bignum.h:376:54: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)
if (!BN_div(&dv, &rem, &bn, &bnBase, pctx))
^
bignum.h:382:32: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_is_negative(const BIGNUM*)
if (BN_is_negative(this))
^
bignum.h: In member function bool CBigNum::operator!() const:
bignum.h:415:31: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_is_zero(const BIGNUM*)
return BN_is_zero(this);
^
bignum.h: In member function CBigNum& CBigNum::operator+=(const CBigNum&):
bignum.h:420:35: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_add(BIGNUM*, const BIGNUM*, const BIGNUM*)
if (!BN_add(this, this, &b))
^
bignum.h: In member function CBigNum& CBigNum::operator*=(const CBigNum&):
bignum.h:434:41: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_mul(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)
if (!BN_mul(this, this, &b, pctx))
^
bignum.h: In member function CBigNum& CBigNum::operator<<=(unsigned int):
bignum.h:453:41: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_lshift(BIGNUM*, const BIGNUM*, int)
if (!BN_lshift(this, this, shift))
^
bignum.h: In member function CBigNum& CBigNum::operator>>=(unsigned int):
bignum.h:464:28: error: cannot convert CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_cmp(const BIGNUM*, const BIGNUM*)
if (BN_cmp(&a, this) > 0)
^
bignum.h:470:41: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_rshift(BIGNUM*, const BIGNUM*, int)
if (!BN_rshift(this, this, shift))
^
bignum.h: In member function CBigNum& CBigNum::operator++():
bignum.h:479:47: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_add(BIGNUM*, const BIGNUM*, const BIGNUM*)
if (!BN_add(this, this, BN_value_one()))
^
bignum.h: In member function CBigNum& CBigNum::operator--():
bignum.h:496:45: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_sub(BIGNUM*, const BIGNUM*, const BIGNUM*)
if (!BN_sub(&r, this, BN_value_one()))
^
bignum.h: In function const CBigNum operator+(const CBigNum&, const CBigNum&):
bignum.h:521:27: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_add(BIGNUM*, const BIGNUM*, const BIGNUM*)
if (!BN_add(&r, &a, &b))
^
bignum.h: In function const CBigNum operator-(const CBigNum&, const CBigNum&):
bignum.h:529:27: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_sub(BIGNUM*, const BIGNUM*, const BIGNUM*)
if (!BN_sub(&r, &a, &b))
^
bignum.h: In function const CBigNum operator-(const CBigNum&):
bignum.h:537:43: error: cannot convert CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_is_negative(const BIGNUM*)
BN_set_negative(&r, !BN_is_negative(&r));
^
bignum.h: In function const CBigNum operator*(const CBigNum&, const CBigNum&):
bignum.h:545:33: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_mul(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)
if (!BN_mul(&r, &a, &b, pctx))
^
bignum.h: In function const CBigNum operator/(const CBigNum&, const CBigNum&):
bignum.h:554:39: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)
if (!BN_div(&r, NULL, &a, &b, pctx))
^
In file included from bignum.h:10:0,
from main.h:8,
from checkpoints.cpp:10:
bignum.h: In function const CBigNum operator%(const CBigNum&, const CBigNum&):
bignum.h:563:10: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 2 to int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)
if (!BN_mod(&r, &a, &b, pctx))
^
In file included from main.h:8:0,
from checkpoints.cpp:10:
bignum.h: In function const CBigNum operator<<(const CBigNum&, unsigned int):
bignum.h:571:33: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_lshift(BIGNUM*, const BIGNUM*, int)
if (!BN_lshift(&r, &a, shift))
^
bignum.h: In function bool operator==(const CBigNum&, const CBigNum&):
bignum.h:583:83: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_cmp(const BIGNUM*, const BIGNUM*)
inline bool operator==(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) == 0); }
^
bignum.h: In function bool operator!=(const CBigNum&, const CBigNum&):
bignum.h:584:83: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_cmp(const BIGNUM*, const BIGNUM*)
inline bool operator!=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) != 0); }
^
bignum.h: In function bool operator<=(const CBigNum&, const CBigNum&):
bignum.h:585:83: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_cmp(const BIGNUM*, const BIGNUM*)
inline bool operator<=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) <= 0); }
^
bignum.h: In function bool operator>=(const CBigNum&, const CBigNum&):
bignum.h:586:83: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_cmp(const BIGNUM*, const BIGNUM*)
inline bool operator>=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) >= 0); }
^
bignum.h: In function bool operator<(const CBigNum&, const CBigNum&):
bignum.h:587:83: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_cmp(const BIGNUM*, const BIGNUM*)
inline bool operator<(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) < 0); }
^
bignum.h: In function bool operator>(const CBigNum&, const CBigNum&):
bignum.h:588:83: error: cannot convert const CBigNum* to const BIGNUM* {aka const bignum_st*} for argument 1 to int BN_cmp(const BIGNUM*, const BIGNUM*)
inline bool operator>(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) > 0); }
^
In file included from main.h:13:0,
from checkpoints.cpp:10:
base58.h: In function std::__cxx11::string EncodeBase58(const unsigned char*, const unsigned char*):
base58.h:53:48: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)
if (!BN_div(&dv, &rem, &bn, &bn58, pctx))
^
base58.h: In function bool DecodeBase58(const char*, std::vector&):
base58.h:100:42: error: cannot convert CBigNum* to BIGNUM* {aka bignum_st*} for argument 1 to int BN_mul(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)
if (!BN_mul(&bn, &bn, &bn58, pctx))
^
checkpoints.cpp: In function double Checkpoints::GuessVerificationProgress(CBlockIndex*):
checkpoints.cpp:92:15: warning: unused variable nNow [-Wunused-variable]
int64 nNow = time(NULL);
^~~~
checkpoints.cpp:94:16: warning: unused variable fWorkBefore [-Wunused-variable]
double fWorkBefore = 0.0; // Amount of work done before pindex
^~~~~~~~~~~
checkpoints.cpp:95:16: warning: unused variable fWorkAfter [-Wunused-variable]
double fWorkAfter = 0.0; // Amount of work left after pindex (estimated)
^~~~~~~~~~
In file included from checkpoints.cpp:10:0:
main.h: At global scope:
main.h:80:12: warning: int MAX_ORPHAN_TRANSACTIONS_FOR_HEIGHT(int) defined but not used [-Wunused-function]
static int MAX_ORPHAN_TRANSACTIONS_FOR_HEIGHT(int height){
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.h:71:12: warning: int MAX_BLOCK_SIGOPS_FOR_HEIGHT(int) defined but not used [-Wunused-function]
static int MAX_BLOCK_SIGOPS_FOR_HEIGHT(int height){
^~~~~~~~~~~~~~~~~~~~~~~~~~~
main.h:62:12: warning: int MAX_BLOCK_SIZE_GEN_FOR_HEIGHT(int) defined but not used [-Wunused-function]
static int MAX_BLOCK_SIZE_GEN_FOR_HEIGHT(int height){
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.h:53:12: warning: int MAX_BLOCK_SIZE_FOR_HEIGHT(int) defined but not used [-Wunused-function]
static int MAX_BLOCK_SIZE_FOR_HEIGHT(int height){
^~~~~~~~~~~~~~~~~~~~~~~~~
makefile.unix:192: recipe for target 'obj/checkpoints.o' failed
make: *** [obj/checkpoints.o] Error 1