请首先到/language/zh/downloads/下载或克隆源码。
缺省的,我们使用cmake来生成对应平台的项目文件(sln或make文件等)。
但cmake不是必须的,也可以选择自己喜欢的方式创建自己的项目文件。比如,使用premake等来生成项目文件,或者手工创建。
Windows平台
- 下载并安装cmake,请使用3.3以上版本
- cmake的路径需要添加到环境变量PATH
- 运行build目录下的cmake_generate_projects.bat生成项目文件
- 如果需要build android版本
- 需要安装vs2015
- 使用android_vs2015子目录下的项目文件
- 或者使用cmake生成项目文件
- 下载并安装cmake android, 直接覆盖上面步骤安装的cmake就好。
- 运行build目录下的cmake_generate_projects_android.bat生成项目文件
- 如果想使用mk,可以修改生成的linux下的make文件
其他平台
- 下载并安装cmake,请使用3.3以上版本
- 如果可能,请保证4.4.6以上版本的gcc
- 使用版本为4.4.6的gcc可以顺利编译,但4.1.2的gcc有错误(未测试低于4.4.6的版本)
- 运行build目录下的cmake_generate_projects.sh生成项目文件
- mac上,运行build目录下的cmake_generate_projects_mac.sh生成项目文件
注意
- cmake_generate*.bat里使用的是vs2013和vs2015,用户可以根据自己的需要选择相应的编译器,比如vs2008、vs2010等,或者通过cmakegui进行选择。
- CMakeLists.txt里提供的是缺省设置,可以根据自己的需要直接修改或通过cmakegui来选择配置。特别的,CMakeLists.txt里有若干个选项可以配置。
- BEHAVIAC_VERSION_MODE用来控制BEHAVIAC_RELEASE是否定义。BEHAVIAC_RELEASE的用途请参考文章《优化及性能》。
- Default:缺省模式是Debug下BEHAVIAC_RELEASE没有定义,而Release下BEHAVIAC_RELEASE有定义
- ForceUseDev:强制不定义BEHAVIAC_RELEASE
- ForceUseRelease:强制定义BEHAVIAC_RELEASE
- 在ForceUseRelease的时候,Release下,生成的项目文件会试图打开LTO开关,请参考文档《Cpp生成代码大小的说明》
- CMAKE_BUILD_TYPE用来控制生成Debug还是Release(Visual Studio的时候不需要指定CMAKE_BUILD_TYPE)
- BUILD_SHARED_LIBS用来控制libbehaviac是stati lib/a还是dynamid dll/so
- BUILD_USE_64BITS用来控制是否生成64位 (使用Visual Studio时,需要指定带Win64的generator,请参考cmake的文档)
- 根据上面的配置,CMake生成下面的_config.h文件,用来自动定义宏BEHAVIAC_RELEASE,如下图所示:
- 在另一个文件config.h中,会根据_DEBUG或DEBUG宏来尝试重新定义宏BEHAVIAC_RELEASE,如果在_config.h中宏BEHAVIAC_RELEASE并没有定义,如下图所示:
- BEHAVIAC_VERSION_MODE用来控制BEHAVIAC_RELEASE是否定义。BEHAVIAC_RELEASE的用途请参考文章《优化及性能》。
- cmake不是必须的
- 你可以选择自己喜欢的其他类似工具,比如premake等来生成项目文件。
- 或者,你可以手工创建项目文件。
- 又或者,可以直接把src和inc加到你已有的项目文件。
- 当你自行修改或创建项目文件的时候,可能需要参考CMakeLists.txt查看需要的设置:
- include_directories包含目录,你需要设置正确的包含目录
- add_definitions编译宏,比如_DEBUG
- add_target_definitions编译宏,比如BEHAVIACDLL_EXPORTS,BEHAVIAC_DLL
- CMAKE_CXX_FLAGS编译开关
- BUILD_SHARED_LIBS是否动态库还是静态库
- build\android_vs2015是提供的缺省的使用Visual Studio 2015来生成android项目的项目工程,支持64位。
- 可以使用cmakegui选择设置,或者在cmake的命令行里指定设置( -DCMAKE_BUILD_TYPE=Debug -DBUILD_USE_64BITS=ON等)。请参考build/cmake_generate_projects.bat或者cmake文档。
构建
- 无论Windows平台还是其他平台,项目文件都生成到目录cmake_binary
- 项目文件生成到目录cmake_binary,根据选用的编译工具(vs2013、make等)打开相应目录的项目文件或运行make等进行构建
- .a、.lib、.dll、.exe等被生成到根目录的lib目录和bin目录
- 生成的项目配置(mvsc, linxu, xcode)包含了Debug和Release,请根据需要构建Debug或Release版本
入门的人表示真的看不懂,尝试了好多次,能不能给个视频演示?
有视频教程,你应该是没有找到,还有一部分教程在录制中。
请问如何把tutorial_1_gcc_debug也编译成so,
让java通过JNI来调用.
请问能否在VS2005运行吗?
VS 2015 默认mDd编译 ,改成MTD编译,运行测试代码会有 __acrt_first_block == header std::string