admin管理员组文章数量:1794759
干货!!跨平台编译(Windows/Linux/Android/MacOS/iOS)
认识CMake
-
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
-
能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
-
CMake 的组态档取名为 CMakeLists.txt。
下载cmake地址 Download | CMake
Windows版本安装直接运行EXE
Linux/MAC版本:cmake-..*tar.gz为下载下来的源码包
tar xvf cmake-..*.tar.gz
cd cmake-..*
./bootstrap
make
make install
应用 构建工程目录 编写程序源码hello.h
#if !defined(__GNUC__) && defined(TEST_EXPORTS) #define TEST_API __declspec(dllexport) #elif !defined(__GNUC__) && !defined(TEST_IMPORTS_IGNORE) #define TEST_API __declspec(dllimport) #else #define TEST_API #endif TEST_API void print_hello_world(void);hello.c
#include void print_hello_world(void) { printf("hello world!\\n"); }main.c
#include "hello.h" int main() { print_hello_world(); return 0; } 编写编译脚本 CMakeLists.txt cmake_minimum_required(VERSION 3.5) set(PROJECT_NAME mytest) set(LIB_NAME hello) ##### 设置编译32位工程 ##### IF (APPLE) ## mac/ios平台编译64位库 set(USE_32BITS 0) ELSE() set(USE_32BITS 1) ENDIF() #### 设置编译参数 ##### if(USE_32BITS) message(STATUS "Compiling project using 32 bits") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") endif(USE_32BITS) #### 头文件目录 ##### include_directories(${PROJECT_SOURCE_DIR}/include) #### windows平台设置dllexport,兼容头文件 ##### IF(WIN32) add_definitions(-DTEST_EXPORTS) ENDIF(WIN32) #### 编译动态库 ##### add_library(${LIB_NAME} SHARED ${PROJECT_SOURCE_DIR}/src/hello.c ) #### 编译程序 ##### add_executable(${PROJECT_NAME} ${PROJECT_SOURCE_DIR}/src/main.c) target_link_libraries(${PROJECT_NAME} ${LIB_NAME} ) build.shbuild.sh源码下载地址:跨平台编译脚本build.sh_.sh文件如何编译运行-Unix文档类资源-CSDN下载
使用说明
版权声明:本文标题:干货!!跨平台编译(WindowsLinuxAndroidMacOSiOS) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686871295a112939.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论