同步操作将从 kl222/RabbitIm 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
各版本的问题:
需要用我修改的版本:https://github.com/KangLin/qxmpp
下载:
git clone https://github.com/KangLin/qxmpp.git
当前使用版本:
git库版本 —— 0b49b87c2c4e38a6d2fd9983949e34782575955c
编译方法参考源码根目录下的README文件。
下载:
gclient config http://webrtc.googlecode.com/svn/trunk
gclient sync --force
当前使用版本:tag ——r8464
下载:
git clone git://source.ffmpeg.org/ffmpeg.git
*当前使用版本: git库版本 —— n3.0.1
git clone git://git.videolan.org/x264.git
git clone https://chromium.googlesource.com/webm/libvpx libvpx
git clone http://git.xiph.org/speexdsp.git
git clone http://git.xiph.org/speex.git
git clone git://github.com/Itseez/opencv.git
git clone http://git.chromium.org/external/libyuv.git
git clone https://github.com/openssl/openssl
git://github.com/bagder/curl.git
svn co http://source.icu-project.org/repos/icu/icu/trunk/ icu
cd /home
git clone git://git.gitorious.org/qt/qt5.git #(或者:git clone https://git.gitorious.org/qt/qt5.git)
cd qt5
git checkout 5.7
perl init-repository
更新已有qt:
cd /home/qt5
git pull
perl init-repository -f --branch
清理代码:
git submodule foreach --recursive "git clean -dfx" && git clean -dfx
详见:开发文档
git clone https://github.com/jedisct1/libsodium.git
git clone git://git.opus-codec.org/opus.git
git clone https://github.com/fukuchi/libqrencode.git
git clone git://git.code.sf.net/p/qzxing/code
git clone git://github.com/irungentoo/toxcore.git
git clone https://github.com/OSGeo/gdal
git clone https://github.com/openscenegraph/osg.git
git clone https://github.com/gwaldron/osgearth.git
git clone git://git.code.sf.net/p/libpng/code
git clone https://github.com/KangLin/rabbitim.git
在源码根目录下有第三方库目录:ThirdLibrary 。其目录结构如下:
ThirdLibrary
|
|-----patch #补丁包目录
|-----build_script #第三方库编译脚本目录
|-----src #第三方库源码目录
|-----windows_msvc # Windows 平台 msvc 编译的第三方库
| |-----include #头文件
| |-----lib #库文
|-----windows_msvc_static # Windows 平台 msvc 编译的第三方静态库
| |-----include #头文件
| |-----lib #库文
|-----windows_mingw # Windows 平台 mingw 交叉编译的第三方库
| |-----include
| |-----lib
|-----windows_mingw_static # Windows 平台 mingw 交叉编译的第三方静态库
| |-----include
| |-----lib
|------unix # unix 平台的第三方库
| |-----include
| |-----lib
|------unix_static # unix 平台的第三方静态库
| |-----include
| |-----lib
|-----android # android 平台的第三方库
| |-----include
| |-----lib
|------windows_phone #Windows Phone 平台的第三方库
| |------include
| |------lib
|------ ios # ios 平台的第三方库
| |------include
| |------lib
可以在 https://sourceforge.net/projects/rabbitim-third-library/files/release/ 中, 选择与你主机操作系统相同、编译器版本相同的包下载本项目依赖的预编译好的第三方库。
文件格式: RabbitIm_$(平台)$(版本号)$(架构)$(QT 版本).zip
编译器 | 版本号 | 平台 | 架构 |
---|---|---|---|
VS2015 | 14 | windows_msvc | x86 |
VS2013 | 12 | windows_msvc | x86 |
gcc 5.3.0 | 530 | windows_mingw | x86 |
gcc 4.9.2 | 492 | windows_mingw | x86 |
gcc 4.9.1 | 491 | windows_mingw | x86 |
gcc 4.8.2 | 482 | windows_mingw | x86 |
gcc 4.8 | 4.8 | android | arm |
下载后解压,按上面目录结构放置。 如果目录下有change_prefix.sh,则执行change_prefix.sh就可以。 如果没有,则需要按下面步骤执行:
cd ${RabbitImRoot}/ThirdLibrary/build_script
cp ${RabbitImRoot}/ThirdLibrary/build_script/change_prefix.sh ${RabbitImRoot}/ThirdLibrary/${Platform}/change_prefix.sh
cd ${RabbitImRoot}/ThirdLibrary/${Platform}
./change_prefix.sh ${old_prefix} ${new_prefix} #old_prefix是原来的前缀,你可打开一个配置文件查看;
如果第三方库是你自己编译的,那就不需要这一步。
第三库编译脚本是 bash 脚本。运行这些脚本时,需要有 bash 环境。linux、unix 默认安装了 bash 环境。 windows 下需要安装 cygwin 或者 msys(msys2) 环境。
环境变量:
export RabbitImRoot=/home/rabbitim #本工程源码根目录
所需要的环境变量可以保存到系统配置文件 ~/.profile 文件中。作为全局环境变量。 但这可能会与其它工程需要的环境变量冲突。为了避免这个问题。 你也可以把环境变量保到 build_envsetup_${RABBITIM_BUILD_TARGERT}.sh 文件中。
脚本只编译第三方依赖库的发行版本。如果你需要调试版本,请手工编译。
第三方库编译脚本位于:${RabbitImRoot}/ThirdLibrary/build_script 目录下。
注意: 执行脚本时,请先进入 ${RabbitImRoot}/ThirdLibrary/build_script 目录。
cd ${RabbitImRoot}/ThirdLibrary/build_script
./build.sh (unix|android|windows_msvc|windows_mingw) [source_code_directory]
如果省略源码目录,则脚本自动下载源码到 cd ${RabbitImRoot}/ThirdLibrary/src 目录下。
各目标编译详细说明:
详见:http://blog.csdn.net/kl222/article/details/23101115
安装到:
make PREFIX=${RabbitImRoot}/ThirdLiabary/${Platform}
详见《ffmpeg教程》
Building OpenCV4Android from trunk
详见:http://blog.csdn.net/kl222/article/details/27223791
编译完成后,安装到:${RabbitImRoot}/ThirdLiabary/${Platform}
./autogen.sh
configure --prefix=${RabbitImRoot}/ThirdLiabary/${Platform}
make install
官网:https://code.google.com/p/libyuv/wiki/GettingStarted
详见:《libyuv编译》
或者: libyuv编译.txt
git clone git@github.com:KangLin/qxmpp.git
$(RabbitImRoot)/ThirdLibrary/patch/0001-add-handle-non-sasl-authentication-error-response.patch
git branch patch
git checkout patch
git am $(RabbitImRoot)/ThirdLibrary/patch/0001-add-handle-non-sasl-authentication-error-response.patch
git checkout master
git merge patch
export PATH=$PATH:$QMAKE_PATH
mkdir build; cd build
qmake -o Makefile QXMPP_LIBRARY_TYPE=staticlib PREFIX=$(RabbitImRoot)/ThirdLibrary/${RABBITIM_BUILD_TARGERT} INCLUDEPATH+=$(RabbitImRoot)/ThirdLibrary/${RABBITIM_BUILD_TARGERT}/include LIBS+=-L$(RabbitImRoot)/ThirdLibrary/${RABBITIM_BUILD_TARGERT}/lib QXMPP_USE_VPX=1 ${RabbitImRoot}/Rabbitim.pro
$(MAKE)
注意:qxmpp库版本与qt版本相关,如果当前qt版本与编译的qxmpp用的qt版本不一样,那么需要用现在qt重新编译qxmpp库。
如果要连接静态 QXMPP 库时,需要加上-DQXMPP_STATIC 。
用脚本 $(RabbitImRoot)/ThirdLibrary/build_rabbitim.sh 进行编译:
. build_rabbitim.sh 平台参数 [源码根目录] [工程工具]
例如用qmake编译android平台:
. build_rabbitim.sh android $(RabbitImRoot) qmake
用 Qt Creator 打开本工程根目录下的 Rabbitim.pro 文件。
用 Qt Creator 打开本工程根目录下的 CMakeLists.txt 文件。
用 Qt Creator 打开本工程根目录下的 CMakeLists.txt 文件。
设置 qmake 路径到环境变量 PATH 中:
QMAKE_PATH=${QT_INSTALL_DIR}/bin
export PATH=$PATH:$QMAKE_PATH
编译:
mkdir build
cd build
qmake ${RabbitImRoot}/Rabbitim.pro
$(MAKE)
MAKE在不同的环境下有不同的命令:
进入项目源码根目录
cd $(RabbitImRoot)
建立编译目录
mkdir rabbitim-build
进入编译目录
cd rabbitim-build
设置qt环境变量[可选]
windows环境下可用这个批处理设置qt的环境变量
${QT_INSTALL_DIR}/bin/qtenv2.bat
linux下直接设置环境变量
export PATH=$PATH:${Qt5_DIR} #windows环境mingw下设置 qt 到环境变量 PATH
执行 camke
cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DQt5_DIR=${Qt5_DIR}
cmake --build . --config Release #执行编译
启动程序
./RabbitIm
参数说明:
Qt5_DIR:qt cmake 的安装路径。在qt安装目录的 ${QT_INSTALL_DIR}/lib/cmake/Qt5。
例如: /c/Qt/Qt5.3.1/5.3/mingw482_32/lib/cmake/Qt5
cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DQt5_DIR=/c/Qt/Qt5.3.1/5.3/mingw482_32/lib/cmake/Qt5
cmake --build . --config Release #编译
启动 msvc 编译环境
可以在开始菜单栏->vs2013->visual studio tools->VS2013 x86 本机工具命令提示
也可以直接执行下面命令:
"C:\Program Files\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
设置qt的环境变量
windows 环境下可用这个批处理设置qt的环境变量
C:\Qt\Qt5.3.1\5.3\msvc2013\bin\qtenv2.bat
也可以直接设置环境变量
set PATH=%PATH%;C:\Qt\Qt5.3.1\5.3\msvc2013\bin
设置产生者:注意用 NMake Makefiles,如果用 VS,则需要对 CMakeLists.txt 中的目标路径做些修改
cmake .. -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DQt5_DIR=C:\Qt\Qt5.3.1\5.3\msvc2013\lib\cmake\Qt5
编译
cmake --build . --config Release
下载 nsis 并把它设置到环境变量(PATH)中(如果已经安装,请忽略此步)
再执行下面命令
set PATH=%PATH%;${QT_INSTALL_DIR}/bin #把qt安装目录加到环境变量中
cpack -G NSIS #这个是编译完成后,单独打包的命令,或者也可用下面编译时打包命令
cmake --build . --config Release --target package #编译时同时打包
rpm 需要安装 rpmbuilder
再执行下面命令
export PATH=$PATH:${QT_INSTALL_DIR}/bin
cpack -G deb rmp
windows 平台下以 mingw 环境为例
export ANDROID_NDK_ROOT= #android ndk 根目录
export ANDROID_NDK=$ANDROID_NDK_ROOT
export ANDROID_SDK= #android sdk 根目录
export ANDROID_SDK_ROOT=$ANDROID_SDK
export JAVA_HOME= #jdk根目录
export ANT_ROOT= #ant工具的目录
export PATH=$PATH:%ANT_ROOT/bin
cd $(RabbitImRoot) #进入项目源码根目录
mkdir rabbitim-build #建立编译目录
cd rabbitim-build #进入编译目录
cmake .. -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=../platforms/android/android.toolchain.cmake \
-DCMAKE_MAKE_PROGRAM=${ANDROID_MAKE} \ #windows 下需要 make 工具的位置,linux下则不需要这个
-DQt5_DIR=${Qt5_DIR} \ #qt 的 cmake 位置
-DANT=${ANT_ROOT}/bin/ant \ #ant 工具位置
cmake --build . #执行编译
变量说明:
${CMAKE_TOOLCHAIN_FILE}:编译工具链文件。在源码根目录 platforms/android/android.toolchain.cmake
${ANDROID_MAKE}:windows下android ndk 自带的make工具,如果在windows平台上编译,则需要指定。例如:"$ANDROID_NDK/prebuilt/windows/bin/make"
${Qt5_DIR}:qt for android 的 cmake 安装路径。位于qt for android的安装目录 lib/cmake/Qt5 。例如:Qt5_DIR=/c/Qt/Qt5.3.1_android/5.3/android_armv7/lib/cmake/Qt5
${ANT_ROOT}:ant 的安装路径(linux一般会安装在 /use/bin 下)。例如: ANT_ROOT=/d/software/apache-ant-1.9.4
例如:
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../rabbitim/platforms/android/android.toolchain.cmake -DQt5_DIR=/c/Qt/Qt5.3.1_android/5.3/android_armv7/lib/cmake/Qt5 ../rabbitim -DANT=/d/software/apache-ant-1.9.4/bin/ant -DCMAKE_MAKE_PROGRAM=/d/software/android-ndk-r9/prebuilt/windows/bin/make -G"Unix Makefiles"
CMake Error at c:/Qt/Qt5.3.1/5.3/android_armv7/lib/cmake/Qt5Gui/Qt5GuiConfig.cma ke:15 (message): The imported target "Qt5::Gui" references the file
"Qt5Gui_EGL_LIBRARY-NOTFOUND"
but this file does not exist. Possible reasons include:
The file was deleted, renamed, or moved to another location.
An install or uninstall procedure did not complete successfully.
The installation package was faulty and contained
"c:/Qt/Qt5.3.1/5.3/android_armv7/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake"
but not all the files it references.
Call Stack (most recent call first):
c:/Qt/Qt5.3.1/5.3/android_armv7/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:31 (_qt5_Gui_check_file_exists)
c:/Qt/Qt5.3.1/5.3/android_armv7/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:58 (_qt5gui_find_extra_libs)
c:/Qt/Qt5.3.1/5.3/android_armv7/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:143 (include)
c:/Qt/Qt5.3.1/5.3/android_armv7/lib/cmake/Qt5/Qt5Config.cmake:26 (find_package)
xmpp服务配置域名(rabbitim.com),客户端如果没有域名,连接服务器时,则直接设置主机IP,同时设置域名。
当然,也可以修改系统hosts文件配置域名解析。这个域名实质上是xmpp应用程序用于区别不同域。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。