Greetings,
I had a few problems when trying to compile mandelbulber from sources, both from the latest svn trunk (360) and the 1.16 release. They're pretty easily fixed though. Below is a patch that fixes them, but for the second problem below, I'm not sure it's the correct solution, unless the comment about subdir.mk beeing automatically generated is no longer valid.
Index: makefiles/src/subdir.mk
===================================================================
--- makefiles/src/subdir.mk (revision 360)
+++ makefiles/src/subdir.mk (working copy)
@@ -16,6 +16,7 @@
../src/image.cpp \
../src/interface.cpp \
../src/morph.cpp \
+../src/netrender.cpp \
../src/primitives.cpp \
../src/settings.cpp \
../src/shaders.cpp \
@@ -36,6 +37,7 @@
./src/image.o \
./src/interface.o \
./src/morph.o \
+./src/netrender.o \
./src/primitives.o \
./src/settings.o \
./src/shaders.o \
@@ -56,6 +58,7 @@
./src/image.d \
./src/interface.d \
./src/morph.d \
+./src/netrender.d \
./src/primitives.d \
./src/settings.d \
./src/shaders.d \
Index: src/texture.cpp
===================================================================
--- src/texture.cpp (revision 360)
+++ src/texture.cpp (working copy)
@@ -5,6 +5,7 @@
* Author: krzysztof
*/
#include <stdio.h>
+#include <cstring>
#include "texture.hpp"
#include "files.h"
Index: src/timeline.cpp
===================================================================
--- src/timeline.cpp (revision 360)
+++ src/timeline.cpp (working copy)
@@ -6,7 +6,7 @@
*/
#include <cstdlib>
-
+#include <cstring>
#include "timeline.hpp"
#include "files.h"
#include "interface.h"
The patch fixes the following problems:
1) Missing #include <cstring>
There is a missing include of
<cstring> in texture.cpp and timeline.cpp (or .hpp). Without it, these files wont compile for me due to "definition of memset was not declared in this scope".
Building file: ../src/texture.cpp
Invoking: GCC C++ Compiler
g++ -O3 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"src/texture.d" -MT"src/texture.d" -o "src/texture.o" "../src/texture.cpp"
../src/texture.cpp: In constructor ‘cTexture::cTexture(const char*)’:
../src/texture.cpp:56:42: error: ‘memset’ was not declared in this scope
memset(bitmap,255,sizeof(sRGB8)*100*100);
^
../src/texture.cpp: In constructor ‘cTexture::cTexture()’:
../src/texture.cpp:66:41: error: ‘memset’ was not declared in this scope
memset(bitmap,255,sizeof(sRGB8)*100*100);
^
make: *** [src/texture.o] Error 1
2) Undefined reference to netRender
This is only a problem on trunk, not on the 1.16 release.
I get the error message below,
"undefined reference to netRender". It seems like netrender.c/netrender.d/netrender.cpp is no longer part of CPP_SRCS, OBJS and CPP_DEPS in $SVNROOT/makefiles/src/subdir.mk (it is in the 1.16 release). Adding it to the variables defined in subdir.mk solves the problem and everything compiles fine. That file is apparently automatically generated, and I have no clue where the proper place to fix it is though, unless these files no longer are automatically generated.
<snip>
Building target: mandelbulber
Invoking: GCC C++ Linker
g++ -o"mandelbulber" -L/usr/lib/x86_64-linux-gnu/ ./src/Render3D.o ./src/algebra.o ./src/callbacks.o ./src/cimage.o ./src/cl_support.o ./src/common_math.o ./src/database.o ./src/files.o ./src/fractal.o ./src/image.o ./src/interface.o ./src/morph.o ./src/primitives.o ./src/settings.o ./src/shaders.o ./src/texture.o ./src/timeline.o ./src/undo.o -lpng -ljpeg `pkg-config --libs gtk+-2.0 gthread-2.0`
./src/Render3D.o: In function `Render(sParamRender, cImage*, _GtkWidget*)':
Render3D.cpp:(.text+0x412e): undefined reference to `netRender'
Render3D.cpp:(.text+0x4226): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0x4240): undefined reference to `netRender'
Render3D.cpp:(.text+0x4de5): undefined reference to `netRender'
Render3D.cpp:(.text+0x4e27): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0x4e2e): undefined reference to `netRender'
Render3D.cpp:(.text+0x5d1c): undefined reference to `netRender'
Render3D.cpp:(.text+0x66d6): undefined reference to `netRender'
Render3D.cpp:(.text+0x66f8): undefined reference to `CNetRender::receiveDataFromServer(char*)'
Render3D.cpp:(.text+0x6763): undefined reference to `netRender'
Render3D.cpp:(.text+0x6784): undefined reference to `netRender'
Render3D.cpp:(.text+0x6823): undefined reference to `netRender'
Render3D.cpp:(.text+0x6868): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0x686f): undefined reference to `netRender'
Render3D.cpp:(.text+0x68a3): undefined reference to `netRender'
Render3D.cpp:(.text+0x68c7): undefined reference to `CNetRender::receiveDataFromClient(char*, int, int)'
Render3D.cpp:(.text+0x68f1): undefined reference to `netRender'
Render3D.cpp:(.text+0x68f6): undefined reference to `CNetRender::GetData(void*)'
Render3D.cpp:(.text+0x6a61): undefined reference to `netRender'
Render3D.cpp:(.text+0x6d5e): undefined reference to `netRender'
Render3D.cpp:(.text+0x6de1): undefined reference to `netRender'
Render3D.cpp:(.text+0x6e17): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0x6e1e): undefined reference to `netRender'
Render3D.cpp:(.text+0x6e6b): undefined reference to `netRender'
Render3D.cpp:(.text+0x6eb7): undefined reference to `netRender'
Render3D.cpp:(.text+0x7064): undefined reference to `CNetRender::receiveDataFromServer(char*)'
Render3D.cpp:(.text+0x70d2): undefined reference to `netRender'
Render3D.cpp:(.text+0x70e0): undefined reference to `CNetRender::sendDataToServer(void*, unsigned long, char*)'
Render3D.cpp:(.text+0x7104): undefined reference to `netRender'
Render3D.cpp:(.text+0x7169): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0x7170): undefined reference to `netRender'
Render3D.cpp:(.text+0x71f1): undefined reference to `netRender'
Render3D.cpp:(.text+0x71f9): undefined reference to `CNetRender::GetData(void*)'
Render3D.cpp:(.text+0x7218): undefined reference to `netRender'
Render3D.cpp:(.text+0x7225): undefined reference to `CNetRender::GetData(void*)'
Render3D.cpp:(.text+0x73c3): undefined reference to `netRender'
Render3D.cpp:(.text+0x73cf): undefined reference to `CNetRender::sendDataToServer(void*, unsigned long, char*)'
./src/Render3D.o: In function `MainRender()':
Render3D.cpp:(.text+0x8ddd): undefined reference to `netRender'
Render3D.cpp:(.text+0x9075): undefined reference to `netRender'
./src/Render3D.o: In function `ThumbnailRender2(sParamRender, cImage*)':
Render3D.cpp:(.text+0xddf2): undefined reference to `netRender'
Render3D.cpp:(.text+0xded8): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0xdef2): undefined reference to `netRender'
Render3D.cpp:(.text+0xe97f): undefined reference to `netRender'
Render3D.cpp:(.text+0xe9b5): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0xe9bc): undefined reference to `netRender'
Render3D.cpp:(.text+0xf8f0): undefined reference to `netRender'
Render3D.cpp:(.text+0x10279): undefined reference to `netRender'
Render3D.cpp:(.text+0x1029e): undefined reference to `CNetRender::receiveDataFromServer(char*)'
Render3D.cpp:(.text+0x102fc): undefined reference to `netRender'
Render3D.cpp:(.text+0x1031d): undefined reference to `netRender'
Render3D.cpp:(.text+0x10363): undefined reference to `netRender'
Render3D.cpp:(.text+0x103a5): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0x103ac): undefined reference to `netRender'
Render3D.cpp:(.text+0x103d3): undefined reference to `netRender'
Render3D.cpp:(.text+0x103f0): undefined reference to `CNetRender::receiveDataFromClient(char*, int, int)'
Render3D.cpp:(.text+0x10413): undefined reference to `netRender'
Render3D.cpp:(.text+0x10418): undefined reference to `CNetRender::GetData(void*)'
Render3D.cpp:(.text+0x1052a): undefined reference to `netRender'
Render3D.cpp:(.text+0x1058c): undefined reference to `netRender'
Render3D.cpp:(.text+0x10605): undefined reference to `netRender'
Render3D.cpp:(.text+0x10689): undefined reference to `netRender'
Render3D.cpp:(.text+0x106b5): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0x106bc): undefined reference to `netRender'
Render3D.cpp:(.text+0x10710): undefined reference to `netRender'
Render3D.cpp:(.text+0x10761): undefined reference to `netRender'
Render3D.cpp:(.text+0x109f7): undefined reference to `CNetRender::receiveDataFromServer(char*)'
Render3D.cpp:(.text+0x10a64): undefined reference to `netRender'
Render3D.cpp:(.text+0x10a72): undefined reference to `CNetRender::sendDataToServer(void*, unsigned long, char*)'
Render3D.cpp:(.text+0x10a91): undefined reference to `netRender'
Render3D.cpp:(.text+0x10adc): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
Render3D.cpp:(.text+0x10ae3): undefined reference to `netRender'
Render3D.cpp:(.text+0x10b13): undefined reference to `netRender'
Render3D.cpp:(.text+0x10b1b): undefined reference to `CNetRender::GetData(void*)'
Render3D.cpp:(.text+0x10b3a): undefined reference to `netRender'
Render3D.cpp:(.text+0x10b47): undefined reference to `CNetRender::GetData(void*)'
Render3D.cpp:(.text+0x10cd3): undefined reference to `netRender'
Render3D.cpp:(.text+0x10cdf): undefined reference to `CNetRender::sendDataToServer(void*, unsigned long, char*)'
./src/Render3D.o: In function `main':
Render3D.cpp:(.text.startup+0x751): undefined reference to `CNetRender::CNetRender(int, int)'
Render3D.cpp:(.text.startup+0x75d): undefined reference to `netRender'
./src/callbacks.o: In function `StopRenderingAndQuit(_GtkWidget*, _GdkEvent*, void*)':
callbacks.cpp:(.text+0x1cbc): undefined reference to `netRender'
callbacks.cpp:(.text+0x1ce3): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
callbacks.cpp:(.text+0x1cea): undefined reference to `netRender'
./src/callbacks.o: In function `StopRendering(_GtkWidget*, void*)':
callbacks.cpp:(.text+0x306c): undefined reference to `netRender'
callbacks.cpp:(.text+0x3093): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
callbacks.cpp:(.text+0x309a): undefined reference to `netRender'
./src/callbacks.o: In function `PressedServerEnable(_GtkWidget*, void*)':
callbacks.cpp:(.text+0x112f7): undefined reference to `netRender'
callbacks.cpp:(.text+0x11302): undefined reference to `CNetRender::SetServer(char*, char*)'
callbacks.cpp:(.text+0x1133b): undefined reference to `netRender'
callbacks.cpp:(.text+0x11340): undefined reference to `CNetRender::DeleteServer()'
./src/callbacks.o: In function `PressedServerScan(_GtkWidget*, void*)':
callbacks.cpp:(.text+0x113a3): undefined reference to `netRender'
callbacks.cpp:(.text+0x1143e): undefined reference to `netRender'
callbacks.cpp:(.text+0x11446): undefined reference to `CNetRender::WaitForClient(char*)'
callbacks.cpp:(.text+0x11465): undefined reference to `netRender'
./src/callbacks.o: In function `SendSettingsToClients(sParamRender)':
callbacks.cpp:(.text+0x1159b): undefined reference to `netRender'
callbacks.cpp:(.text+0x115c5): undefined reference to `CNetRender::sendDataToClient(void*, unsigned long, char*, int, int)'
callbacks.cpp:(.text+0x115cc): undefined reference to `netRender'
./src/callbacks.o: In function `PressedClientEnable(_GtkWidget*, void*)':
callbacks.cpp:(.text+0x12553): undefined reference to `netRender'
callbacks.cpp:(.text+0x12563): undefined reference to `CNetRender::SetClient(char*, char*, char*)'
callbacks.cpp:(.text+0x125e3): undefined reference to `netRender'
callbacks.cpp:(.text+0x125eb): undefined reference to `CNetRender::receiveDataFromServer(char*)'
callbacks.cpp:(.text+0x1265b): undefined reference to `netRender'
callbacks.cpp:(.text+0x12660): undefined reference to `CNetRender::DeleteClient()'
callbacks.cpp:(.text+0x1269e): undefined reference to `netRender'
callbacks.cpp:(.text+0x126a9): undefined reference to `CNetRender::GetData(void*)'
./src/callbacks.o: In function `NoGUIClientEnable()':
callbacks.cpp:(.text+0x12708): undefined reference to `netRender'
callbacks.cpp:(.text+0x12712): undefined reference to `CNetRender::SetClient(char*, char*, char*)'
callbacks.cpp:(.text+0x12776): undefined reference to `netRender'
callbacks.cpp:(.text+0x1277e): undefined reference to `CNetRender::receiveDataFromServer(char*)'
callbacks.cpp:(.text+0x127fb): undefined reference to `netRender'
callbacks.cpp:(.text+0x12806): undefined reference to `CNetRender::GetData(void*)'
collect2: error: ld returned 1 exit status
make: *** [mandelbulber] Error 1