Adding default include path to INCLUDEPATH break compilation with GCC 6
With many errors similar to this
x86_64-pc-linux-gnu-gcc -c -march=native -mtune=native -pipe -O0 -g -fno-omit-frame-pointer -fPIC -Wall -W -D_REENTRANT -DRS_ENABLE_GXS -DENABLE_WEBUI -DRS_NO_WARN_DEPRECATED -DRS_NO_WARN_CPP -DRS_GXS_TRANS -DOPENSSL_NO_IDEA -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -isystem /usr/include -I. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++ -o temp/linux/obj/accumulate.o openpgpsdk/accumulate.c
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/ext/string_conversions.h:41:0,
from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/basic_string.h:5417,
from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/string:52,
from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/locale_classes.h:40,
from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/ios_base.h:41,
from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/ios:42,
from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/ostream:38,
from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/iostream:39,
from ./bitdht/bdobj.h:32,
from ./bitdht/bdmsgs.h:34,
from bitdht/bdmsgs.cc:30:
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
^
@see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129
|
||
|---|---|---|
| build_scripts | ||
| data | ||
| libbitdht/src | ||
| libresapi/src | ||
| libretroshare/src | ||
| msys2_build_libs | ||
| openpgpsdk/src | ||
| plugins | ||
| retroshare-android-notify-service/src | ||
| retroshare-android-service/src | ||
| retroshare-gui/src | ||
| retroshare-nogui/src | ||
| retroshare-qml-app/src | ||
| supportlibs/pegmarkdown | ||
| tests | ||
| .gitignore | ||
| .travis.yml | ||
| android-prepare-toolchain.sh | ||
| appveyor.yml | ||
| build-all-mingw32make.bat | ||
| LICENSE.txt | ||
| MacOS_X_InstallGuide.md | ||
| README-Android.asciidoc | ||
| README.md | ||
| retroshare.pri | ||
| RetroShare.pro | ||
| Start_RetroShare-Gui_Debug.bat | ||
| TODO.circles.txt | ||
| TODO.txt | ||
| WindowsMSys2_InstallGuide.md | ||
RetroShare
RetroShare is a decentralized, private and secure commmunication and sharing platform. RetroShare provides filesharing, chat, messages, forums and channels.
Build Status
| Platform | Build Status |
|---|---|
| GNU/Linux, MacOS, (via travis-ci) | |
Windows, MSys2 (via appveyor) |
Compilation on Windows
Follow this file : WindowsMSys2_InstallGuide.md
Compilation on MacOSX
Follow this file : MacOS_X_InstallGuide
Compilation for Android
Follow this file : README-Android
Compilation on Linux
-
Install package dependencies:
- Debian/Ubuntu
sudo apt-get install libglib2.0-dev libupnp-dev qt4-dev-tools \ libqt4-dev libssl-dev libxss-dev libgnome-keyring-dev libbz2-dev \ libqt4-opengl-dev libqtmultimediakit1 qtmobility-dev libsqlcipher-dev \ libspeex-dev libspeexdsp-dev libxslt1-dev libcurl4-openssl-dev \ libopencv-dev tcl8.5 libmicrohttpd-dev- openSUSE
sudo zypper install gcc-c++ libqt4-devel libgnome-keyring-devel \ glib2-devel speex-devel libssh-devel protobuf-devel libcurl-devel \ libxml2-devel libxslt-devel sqlcipher-devel libmicrohttpd-devel \ opencv-devel speexdsp-devel libupnp-devel libavcodec-devel- Arch Linux
pacman -S base-devel libgnome-keyring libmicrohttpd libupnp libxslt \ libxss opencv qt4 speex speexdsp sqlcipher -
Checkout the source code
mkdir ~/retroshare cd ~/retroshare git clone https://github.com/RetroShare/RetroShare.git trunk -
Compile
cd trunk qmake CONFIG+=debug make -
Install
sudo make installThe executables produced will be:
/usr/bin/retroshare /usr/bin/retroshare-nogui -
Uninstall:
sudo make uninstall
Compile only retroshare-nogui
If you want to run RetroShare on a server and don’t need the gui and plugins, you can run the following commands to only compile/install the nogui version:
qmake
make retroshare-nogui
sudo make retroshare-nogui-install_subtargets
For packagers
Packagers can use PREFIX and LIB_DIR to customize the installation paths:
qmake PREFIX=/usr LIB_DIR=/usr/lib64 "CONFIG-=debug" "CONFIG+=release"
make
make INSTALL_ROOT=${PKGDIR} install
If libsqlcipher is not available as a package
You need to place sqlcipher so that the hierarchy is:
retroshare
|
+--- trunk
|
+--- lib
|
+---- sqlcipher
mkdir lib
cd lib
git clone git://github.com/sqlcipher/sqlcipher.git
cd sqlcipher
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
make
cd ..
Using retroshare-nogui & webUI
The webUI needs to be enabled as a parameter option in retroshare-nogui:
./retroshare-nogui --webinterface 9090 --docroot /usr/share/retroshare/webui/
The webUI is only accessible on localhost:9090. It is advised to keep it that way so that your RS cannot be controlled using an untrusted connection.
To access your web UI from a distance, just open a SSH tunnel on it:
distant_machine:~/ > ssh rs_host -L 9090:localhost:9090 -N
"rs_host" is the machine running retroshare-nogui. Then on the distant machine, access your webUI on
http://localhost:9090
That also works with a retroshare GUI of course.
Compile and run tests
qmake CONFIG+=tests
make
tests/unittests/unittests