g4klx / MMDVMHost

The host program for the MMDVM
GNU General Public License v2.0
380 stars 274 forks source link

Build 1eb03ca does not compile for Adafruit I2C 2x6 LCD display #189

Closed iball closed 8 years ago

iball commented 8 years ago

Following instructions for compiling using the Adafruit makefile:

g++ AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedLC.o DMRFullLC.o DMRLookup.o DMRLC.o DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o Golay24128.o Hamming.o HD44780.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o Timer.o UDPSocket.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o -g -O3 -Wall -std=c++0x -pthread -DHD44780 -DADAFRUIT_DISPLAY -I/usr/local/include -lwiringPi -lwiringPiDev -lpthread -o MMDVMHost MMDVMHost.o: In function CMMDVMHost::createDisplay()': /home/pi/MMDVMHost/MMDVMHost.cpp:1056: undefined reference toCLCDproc::CLCDproc(std::string, unsigned int, unsigned int, std::string const&, unsigned int, bool, bool, bool, bool)' collect2: error: ld returned 1 exit status Makefile:19: recipe for target 'MMDVMHost' failed make: *** [MMDVMHost] Error 1

iball commented 8 years ago

After adding LCDproc.o to the Adafruit makefile, now getting the following error:

g++ AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedLC.o DMRFullLC.o DMRLookup.o DMRLC.o DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o Golay24128.o Hamming.o HD44780.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o Timer.o UDPSocket.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o -g -O3 -Wall -std=c++0x -pthread -DHD44780 -DADAFRUIT_DISPLAY -I/usr/local/include -lwiringPi -lwiringPiDev -lpthread -o MMDVMHost LCDproc.o:(.bss+0x90): multiple definition of m_buffer2' HD44780.o:(.bss+0x80): first defined here LCDproc.o: In functionCTimer::start()': /home/pi/MMDVMHost/Timer.h:58: multiple definition of `m_buffer1' HD44780.o:/home/pi/MMDVMHost/HD44780.cpp:913: first defined here collect2: error: ld returned 1 exit status Makefile:19: recipe for target 'MMDVMHost' failed make: *\ [MMDVMHost] Error 1

iw9grl commented 8 years ago

I confirm that doesn't make ! same error .....

73

phl0 commented 8 years ago

Adding LCDproc.o to the Adafruit Makefile does not make sense in my opinion. You cannot use LCDproc and Adafruit displays at the same time. So when you compile Makefile.Pi.Adafruit LCDproc is not needed.

phl0 commented 8 years ago

Made a mistake before. Can confirm the error. Forgot to pull the latest changes. There are two options:

g4klx commented 8 years ago

I'd prefer a rename as LCDproc can be used on any computer as it uses a network connection to the actual LCDproc server (I think) so is usable from any system. It should always be available and be controlled from MMDVM.ini.

phl0 commented 8 years ago

What about a Makefile.Pi.LCDproc for that?

phl0 commented 8 years ago

Makefile.Pi.HD44780 does also not compile cleanly:

make -f Makefile.Pi.HD44780
[...]
make: *** No rule to make target 'LCDProc.o', needed by 'MMDVMHost'.  Schluss.

and:

$ make -f Makefile.Pi.OLED
[...]
make: *** No rule to make target 'LCDProc.o', needed by 'MMDVMHost'.  Schluss.

and:

$ make -f Makefile.Pi.PCF8574
[...]
make: *** No rule to make target 'LCDProc.o', needed by 'MMDVMHost'.  Schluss.
g4klx commented 8 years ago

LCDProc is itself independent of hardware, for example the LCDproc support within the host can run under Windows so I want to retain that. So no compile time option for it. However Tony needs to address these issues.

phl0 commented 8 years ago

The Makefiles mentioned above suffer from a simple typo: They contain "LCDProc.o" instead of "LCDproc.o".

g0wfv commented 8 years ago

Damn typo in the Makefiles - LCDProc instead of LCDproc!

The buffers can easily be renamed.

m_buffer1, 2, 3 and 4 are defined in HD44780.cpp, so I'd suggest 5 & 6 for want of a better name!?

Flo, are you in a position to make the changes and submit a PR, else I'm not going to get a chance till sometime later this week.

On Mon, 31 Oct 2016, 13:40 Florian (DF2ET), notifications@github.com wrote:

The Makefiles mentioned above suffer from a simple typo: They contain "LCDProc.o" instead of "LCDproc.o".

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/g4klx/MMDVMHost/issues/189#issuecomment-257272836, or mute the thread https://github.com/notifications/unsubscribe-auth/AQf_4pR-XR96tUhxf43-HPokTGV98Eytks5q5dPDgaJpZM4KkrCJ .

A J Corbett

G0WFV

phl0 commented 8 years ago

I made some corrections. See https://github.com/phl0/MMDVMHost/tree/corrLCDproc Before I PR that, I would like to have the approval of the original author @g0wfv :-)

phl0 commented 8 years ago

Ah you did. Would you like to have a quick view at my changes? I renamed m_buffer1 and m_buffer2 to m_displaybuffer1 and m_displaybuffer2 (and corrected the typos in the Makefiles).

iball commented 8 years ago

@phl0 I tried it using your repo:

g++ AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedLC.o DMRFullLC.o DMRLookup.o DMRLC.o DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o Golay24128.o Hamming.o HD44780.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o Timer.o UDPSocket.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o -g -O3 -Wall -std=c++0x -pthread -DHD44780 -DADAFRUIT_DISPLAY -I/usr/local/include -lwiringPi -lwiringPiDev -lpthread -o MMDVMHost MMDVMHost.o: In function CMMDVMHost::createDisplay()': /home/pi/MMDVMHost2/MMDVMHost/MMDVMHost.cpp:1056: undefined reference toCLCDproc::CLCDproc(std::string, unsigned int, unsigned int, std::string const&, unsigned int, bool, bool, bool, bool)' collect2: error: ld returned 1 exit status Makefile:19: recipe for target 'MMDVMHost' failed make: *\ [MMDVMHost] Error 1

phl0 commented 8 years ago

@iball We have that corrected now. Are you sure you checked out my branch named "corrLCDproc" and not my master (which is a copy of @G4KLX master).

phl0 commented 8 years ago

As aligned with @g0wfv on Twitter I made a PR of my changes.

g0wfv commented 8 years ago

Thanks Flo

On Mon, 31 Oct 2016, 14:11 Florian (DF2ET), notifications@github.com wrote:

As aligned with @g0wfv https://github.com/g0wfv I made a PR of my changes.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/g4klx/MMDVMHost/issues/189#issuecomment-257278242, or mute the thread https://github.com/notifications/unsubscribe-auth/AQf_4rsBYAWNMKWmF8Ziu6mhTYjSK-1tks5q5drkgaJpZM4KkrCJ .

A J Corbett

G0WFV

iball commented 8 years ago

@phl0 Your branch compiles cleanly now using Makefile.Pi.Adafruit.

g++ AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedLC.o DMRFullLC.o DMRLookup.o DMRLC.o DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o Golay24128.o Hamming.o HD44780.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o Timer.o UDPSocket.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o -g -O3 -Wall -std=c++0x -pthread -DHD44780 -DADAFRUIT_DISPLAY -I/usr/local/include -lwiringPi -lwiringPiDev -lpthread -o MMDVMHost

iball commented 8 years ago

Can confirm that 8303a94 now compiles correctly.