Post
Topic
Board Beginners & Help
Re: Unable to compile bitcoin
by
ioctlvoid
on 16/07/2011, 19:54:14 UTC
I might be making some progress here, I'm not sure.

I've been trying to follow the guide at (the PDF file) http://forums.atomicmpc.com.au/index.php?showtopic=39944
I installed all of the dependencies and then tried to use the Makefile presented in the document. This however only resulted in errors from make -- not errors from the compiler. With an unspecified rule.

I was unable to modify the Makefile trivially so I made more than just a few modifications, this is my Makefile for bitcoin now:

Code:
DEPSDIR=/tmp/bitcoin/deps

INCLUDEPATHS= -I"$(DEPSDIR)/include"
LIBPATHS= -L"$(DEPSDIR)/lib"
WXLIBS=$(shell $(DEPSDIR)/bin/wx-config --libs --static)
WXBASELIBS=$(shell $(DEPSDIR)/bin/wx-config --libs base --static)

LIBS= -dead_strip \
 $(DEPSDIR)/lib/libdb_cxx-4.8.a \
 $(DEPSDIR)/lib/libboost_system.a \
 $(DEPSDIR)/lib/libboost_filesystem.a \
 $(DEPSDIR)/lib/libcrypto.a

WXDEFS=$(shell $(DEPSDIR)/bin/wx-config --cxxflags) -DNOPCH
DEBUGFLAGS=-g -DwxDEBUG_LEVEL=0
CFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(WXDEFS) $(INCLUDEPATHS)
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h init.h sha.h


OBJS= \
    obj/util.o \
    obj/script.o \
    obj/db.o \
    obj/net.o \
    obj/irc.o \
    obj/main.o \
    obj/rpc.o \
    obj/init.o \
    cryptopp/obj/sha.o \
    cryptopp/obj/cpu.o


all : bitcoin

obj/%.o : %.cpp
g++ $(CFLAGS) -c $<

cryptopp/obj/%.o: cryptopp/%.cpp
g++ $(CFLAGS) -c $<

bitcoin : $(OBJS) obj/ui.o obj/uibase.o
g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)

headers.h.gch : headers.h $(HEADERS)
g++ $(CFLAGS) -c $<

obj/nogui/%.o : %.cpp $(HEADERS)
g++ $(CFLAGS) -DwxUSE_GUI=0 -c $<

bitcoind : $(OBJS:obj/%=obj/nogui/%) obj/sha.o
g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(WXBASELIBS) $(LIBS)

clean :
-rm -f bitcoin bitcoind
-rm -f obj/*
-rm -f obj/nogui/*
-rm -f headers.h.gch

This at least does not stop prior to compilation even starting (unlike the previously mentioned Makefile). However I get the following compiler errors:

Code:
ui.cpp:19: error: expected constructor, destructor, or type conversion before '(' token
ui.cpp:22: error: expected constructor, destructor, or type conversion before '*' token
ui.cpp:24: error: 'wxLocale' does not name a type
...