C++:跨平台
每次都有人问我这个,你跨平台用不同的语言写不就好了,非要搞这么一出
Windows端使用VS进行开发,使用VS打包dll供第三方调用
Android端使用AS进行开发,使用NDK+CMake方式打包so动态链接库供第三方集成
IOS端使用Mac Xcode进行开发,使用Xcode打包为.a/framework供第三方集成
Linux端使用CLion CMake进行开发,使用CMake打包为so动态链接库供第三方调用
GCC:一个跨平台的C++编译器,可以在多个平台上编译和运行代码
Clang:一个跨平台的C++编译器,可以在多个平台上编译和运行代码
Visual Studio Code:一个跨平台的集成开发环境,可以在多个平台上编写和调试代码
条件编译
#ifdef _WIN32 #include <Windows.h> #endif int main() { #ifdef _WIN32 std::string str = ""; #else std::cin >> a >> b; #endif std::cout << a + b << std::endl; }
只编译特定平台代码
CMake只编译特定平台的代码文件
if(WIN32)
FILE(GLOB PLATFORM_SOURCES *_win.cpp)
elseif(LINUX)
FILE(GLOB PLATFORM_SOURCES *_linux.cpp)
elseif(IOS)
FILE(GLOB PLATFORM_SOURCES *_ios.cpp)
elseif(ANDROID)
FILE(GLOB PLATFORM_SOURCES *_android.cpp)
endif()
add_library(a_lib ${PLATFORM_SOURCES})
统一编码
为了避免不同平台编码导致的乱码问题,都转成unicode编码来做
对外接口设计尽可能使用基础类型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-08-10 GIS:Proj4开发库