交叉编译-11:跨平台交叉编译libwebsockets库(Win32、Android、iOS)

一、Windows平台

     1.  进入网址https://github.com/warmcat/libwebsockets/tree/v2.3-stable,下载libwebsockets压缩包。

     2. 下载Cmake安装并配置环境。

     3. 解压libwebsockets-2.3-stable.zip压缩包到某一个目录下。

     4. cmd进入到libwebsockets-2.3-stable目录下,执行以下命令生成VS工程。

 

cmake -DLWS_WITH_SSL=0 -DLWS_WITH_ZIP_FOPS=0 ./ -G "Visual Studio 12 2013"

 

     5. 打开libwebsockets-2.3-stable目录下的VS工程进行编译,生成的动态库在libwebsockets-2.3-stable\libwebsockets-2.3-stable\bin\Debug目录下,静态库在libwebsockets-2.3-stable\lib\Debug目录下

 

二、IOS平台

 

     1.  进入网址https://github.com/warmcat/libwebsockets/tree/v2.3-stable,下载libwebsockets压缩包。

     2. 解压libwebsockets-2.3-stable.zip压缩包到某一个目录下。

     3. cd进入到libwebsockets-2.3-stable目录下,修改CMakeLists.txt,添加下边两行。

 

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DAPPLE -fobjc-abi-version=2 -fobjc-arc -std=gnu++11 -stdlib=libc++ -isysroot ${CMAKE_OSX_SYSROOT}")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAPPLE -fobjc-abi-version=2 -fobjc-arc -isysroot ${CMAKE_OSX_SYSROOT}")

     4. 在libwebsockets-2.3-stable目录下新建build文件夹,在build文件夹下新建ShellScript脚本。

 

#!/bin/bash
rm -rf CMakeCache.txt
rm -r CMakeFiles
rm -rf cmake_install.cmake
rm -rf Makefile
rm -rf CTestTestfile.cmake

if [ “$@“ =~ "-d" ];then
        echo "----------------------------cmake debug----------------------------"
        cmake -DDEBUG=ON -DCMAKE_TOOLCHAIN_FILE=./toolchain/IOS.cmake -DIOS_PLATFORM=OS -DBUILD_ARM64=1 \
        -DLWS_WITH_SSL=OFF \
        -DLWS_WITHOUT_SERVER=ON \
        -DLWS_WITHOUT_TESTAPPS=ON \
        ..         
else      
        echo "----------------------------cmake release----------------------------"
        cmake -DDEBUG=NO -DCMAKE_TOOLCHAIN_FILE=./toolchain/IOS.cmake -DIOS_PLATFORM=OS -DBUILD_ARM64=1 \
        -DLWS_WITH_SSL=OFF \
        -DLWS_WITHOUT_SERVER=ON \
        -DLWS_WITHOUT_TESTAPPS=ON \
        ..        
fi

make 

rm -rf CMakeCache.txt
rm -r CMakeFiles
rm -rf cmake_install.cmake
rm -rf Makefile
rm -rf CTestTestfile.cmake

install_name_tool -id @rpath/libwebsockets.dylib  ./lib/libwebsockets.dylib

     5. 在build文件夹下新建toolchain文件夹,将ios.cmake放在toolchain文件夹中。

     6. 执行ShellScript脚本在当前目录下lib里生成库。

 

三、Android平台

     1.  进入网址https://github.com/warmcat/libwebsockets/tree/v2.3-stable,下载libwebsockets压缩包。

     2. 解压libwebsockets-2.3-stable.zip压缩包到某一个目录下,建一个openssl文件夹,将头文件和库拷进去。

     3. 在libwebsockets-2.3-stable目录下新建build文件夹,在build文件夹下新建ShellScript脚本。

 

#!/bin/bash
rm -rf CMakeCache.txt
rm -rf CMakeFiles
rm -rf cmake_install.cmake
rm -rf Makefile
rm -rf CTestTestfile.cmake

if [[ “$@“ =~ "-d" ]];then
        echo "----------------------------cmake debug----------------------------"
cmake -DDEBUG=ON -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
      -DANDROID_NDK=$ANDROID_NDK_HOME \
      -DANDROID_ABI=armeabi-v7a \
      -DANDROID_TOOLCHAIN=clang \
      -DANDROID_PLATFORM=android-21 \
      -DANDROID_STL=c++_shared \
	  -DLWS_WITHOUT_DAEMONIZE=ON \
      -DLWS_WITHOUT_TESTAPPS=ON \
      -DLWS_IPV6=OFF \
      -DLWS_WITH_BUNDLED_ZLIB=OFF \
	  -DLWS_WITH_SSL=ON  \
      -DLWS_WITH_HTTP2=ON \
	  -DLWS_OPENSSL_INCLUDE_DIRS=../openssl/include \
	  -DLWS_OPENSSL_LIBRARIES="../openssl/lib/libssl.a;../openssl/lib/libcrypto.a" \
	  .   
else      
        echo "----------------------------cmake release----------------------------"
cmake -DDEBUG=NO -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
      -DANDROID_NDK=$ANDROID_NDK_HOME \
      -DANDROID_ABI=armeabi-v7a \
      -DANDROID_TOOLCHAIN=clang \
      -DANDROID_PLATFORM=android-21 \
      -DANDROID_STL=c++_shared \
	  -DLWS_WITHOUT_DAEMONIZE=ON \
      -DLWS_WITHOUT_TESTAPPS=ON \
      -DLWS_IPV6=OFF \
      -DLWS_WITH_BUNDLED_ZLIB=OFF \
	  -DLWS_WITH_SSL=ON  \
      -DLWS_WITH_HTTP2=ON \
	  -DLWS_OPENSSL_INCLUDE_DIRS=../openssl/include \
	  -DLWS_OPENSSL_LIBRARIES="../openssl/lib/libssl.a;../openssl/lib/libcrypto.a" \
	  ..  
fi
	  
make 

rm -rf CMakeCache.txt
rm -rf CMakeFiles
rm -rf cmake_install.cmake
rm -rf Makefile
rm -rf CTestTestfile.cmake

        4. 执行ShellScript脚本在当前目录下lib里生成库。

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值