Tag: cmake

迁移到C ++中的CMake,并使其与Xcode一起使用

曾经写过一个Makefile吗? 糟透了 使用cmake与Xcode 10.1一起使用。 这里(https://mirkokiefer.com/cmake-by-example-f95eb47d45b1)已经是一个很好的指南-我们将在此处填写详细信息,并使其与Xcode一起使用。 具体来说,我们将构建一个动态库。 制作一个CMakeLists.txt文件,并将其添加到顶部。 cmake_minimum_required(版本3.1) 设置(CMAKE_CXX_STANDARD 14) 设置(CMAKE_CXX_STANDARD_REQUIRED ON) 设置(CMAKE_CXX_EXTENSIONS OFF) 其中设置了所需的版本以及C++标准。 为您的项目命名: 项目(myproject) 添加动态库的源文件: add_library(myproject共享src / file1.cpp src / file2.cpp) 然后安装目标: 安装(TARGETS myproject DESTINATION lib) 安装(文件包括/file1.hpp目的地包括) 安装(目录包括/目录1目的地包括) 第一行将库安装到/usr/local/lib ,接下来的两个将文件或整个目录安装到/usr/local/include 。 而已! 使用方法: mkdir构建 光盘制作 cmake .. //您现在在构建目录中有一个Makefile make //该库现在位于构建目录libmyproject.dylib中 make install //安装库和头文件 Xcode呢? 超级简单: cmake .. -GXcode 现在,您在构建目录中有myproject.xcodeproj ! 点击运行,它将立即ALL_BUILD (确保运行按钮旁边顶部的目标是ALL_BUILD […]

如何使用makefile在Xcode中编译库?

我需要在Xcode中编译用C编写的库。 为此,我需要使用make文件。 我如何在我的项目中包含make文件? 任何编写make文件的链接或者在iOS模拟器上运行make文件的例子都是有帮助的。 另外,如果我使用cmake,那么我在terminal中使用什么命令来为iOS模拟器创build一个静态库? 谢谢

编译OpenCV for iOS失败 – Cmake失败

我尝试为ios编译OpenCV。 我总是得到这些错误。 我尝试了不同版本的opencv,但结果是一样的。 我运行这个:python平台/ ios / build_framework.py ios_opencv_build 我安装了python,cmake和g ++编译器。 有没有人有一个想法这些错误是什么意思,我应该做什么编译成功? — Setting up iPhoneOS toolchain — iPhoneOS toolchain loaded — Setting up iPhoneOS toolchain — iPhoneOS toolchain loaded — The CXX compiler identification is Clang 5.1.0 — The C compiler identification is Clang 5.1.0 — Performing Test HAVE_CXX_FSIGNED_CHAR CMake Error at /opt/local/share/cmake-2.8/Modules/CMakeCXXInformation.cmake:37 (get_filename_component): get_filename_component […]

编译OpenCV for iOS失败

有没有人知道为什么会出现这个错误? 我运行$ python platforms/ios/build_framework.py ios来创build适用于iOS的OpenCV framework 。 但安装失败。 平台信息:今天OpenCV最新提交,CMake 2.8.12.2,XCode 5.1.1,Mac OSX 10.9.2 我遵循本教程: 安装Opencv For iOS ** INSTALL FAILED ** The following build commands failed: Libtool ios/build/iPhoneSimulator-x86_64/modules/world/UninstalledProducts/libopencv_world.a normal x86_64 (1 failure) Traceback (most recent call last): File "platforms/ios/build_framework.py", line 112, in <module> build_framework(os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), "../..")), os.path.abspath(sys.argv[1])) File "platforms/ios/build_framework.py", line 104, in build_framework put_framework_together(srcroot, dstroot) File […]

无法将MacOS框架与CMake链接起来

我试图用cmake构build一个子项目(它不是一个xcode项目,甚至是一个iPhone应用程序,结果是跨平台的控制台可执行文件,其中#包含一些从Objective-C ++编写的C ++抽象类的inheritance) 我正在使用本指南链接mac os框架: http ://www.vtk.org/Wiki/CMake: HowToUseExistingOSXFrameworks 和这个macros: macro(ADD_FRAMEWORK fwname appname) find_library(FRAMEWORK_${fwname} NAMES ${fwname} PATHS ${CMAKE_OSX_SYSROOT}/System/Library PATH_SUFFIXES Frameworks NO_DEFAULT_PATH) if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND) MESSAGE(ERROR ": Framework ${fwname} not found") else() TARGET_LINK_LIBRARIES(${appname} ${FRAMEWORK_${fwname}}) MESSAGE(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}") endif() endmacro(ADD_FRAMEWORK) 这是CMakeLists.txt中的重要部分 project(myprojectname) …….. add_executable(mytarget src/mytarget.cpp) add_framework(CoreMedia mytarget) add_framework(CoreVideo mytarget) add_framework(AVFoundation mytarget) add_framework(Foundation mytarget) …….. […]

用CMake编译iOS

我通过使用CMake作为我的构build工具编译了一个C ++静态库,我想将它链接到我的iOS应用程序。 我在Xcode中创build了一个简单的'Empty'应用程序,并将名为libengine.a的库链接到它。 我试图编译我的iOS项目,链接器给了我这个警告: ignoring file /Users/…/build/engine/libengine.a, file was built for archive which is not the architecture being linked (i386): /Users/…/build/engine/libengine.a 据我了解,我需要编译我的库ARM处理器。 问题是我不知道如何。 我认为CMake真的缺乏好的教程。 无论如何,我的CMake脚本附在下面。 任何帮助将不胜感激。 谢谢,Tal。 这是我的主要CMake脚本: cmake_minimum_required(VERSION 2.8) project(movie-night) if (DEFINED PLATFORM) include(toolchains/ios.cmake) endif() add_definitions(-Wall) set(DEBUG) if (DEFINED DEBUG) add_definitions(-g) endif() if (DEFINED RELEASE) add_definitions(-O3) endif() add_subdirectory(engine) add_subdirectory(ui) add_subdirectory(test) 这是我的工具链/ ios.cmake文件: set(CMAKE_SYSTEM_NAME Darwin) […]

你如何设置CMAKE_C_COMPILER和CMAKE_CXX_COMPILER为iOS构buildAssimp?

当我尝试通过运行build_ios.sh来构buildbuild_ios.sh ,它告诉我: CMake Error: your C compiler: "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name. CMake Error: your CXX compiler: "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-g++" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name. 我需要的path是: /Applications/XCode.app/Contents/Developer/Platforms/… 我已经尝试更改DEVROOT和IPHONE_xxxx_TOOLCHAIN.cmake ,因为这是CMAKE_C_COMPILER等似乎生成的,但它仍然给我相同的错误。

如何使用boost-library为iOS(设备和模拟器)构buildASSIMP库?

我想在iOS项目中使用ASSIMP库http://assimp.sourceforge.net 。 不幸的是,我并不是很熟悉makefile和那些东西,所以我需要一些帮助。 我已经下载了源代码,并且首先尝试使用make(在代码子文件夹中)构build在makefile中,我添加了INCLUDEFLAGS = -I/Lib因为我的boost头文件位于/ Lib / boost执行make static成功有一些警告。 生成一个静态库(.a)。 然后,我尝试将.a文件添加到我的xcode-project中,并将assimp头文件夹指定为其他包含目录(其他searchpath)。 链接失败的消息,该图书馆没有正确的架构(模拟器所需的i386) file libassimp.a输出:“libassimp.a:当前ar档案随机库” 无论我需要在iOS设备上如何构buildi386结构库和arm6或arm7库? 可以只使用boost-headers,还是更好/有必要把boost作为一个库? 目前我只使用boost头文件,这应该是好的,因为boost是一个头文件库?! 还有一个cmake – makefile(CMakeLists.txt)。 cmake是build立图书馆的推荐方式,但是我对cmake没有任何经验。 或者另一个想法:是否有可能通过xcodebuild立一个图书馆? 最终的结果应该是i386,arm6和arm7架构的库。 我该怎么办? 如何? 编辑: 我刚刚发现在文件aiDefines.h中有以下预处理器检查: #if defined(_MSC_VER) // See http://msdn.microsoft.com/en-us/library/b0084kay. # if defined(_M_IX86) # define ASSIMP_BUILD_X86_32BIT_ARCHITECTURE # elif defined(_M_X64) # define ASSIMP_BUILD_X86_64BIT_ARCHITECTURE # elif defined(_M_IA64) # define ASSIMP_BUILD_IA_64BIT_ARCHITECTURE # else # error […]

如何为iOS构buildDLIB

我正在尝试构build一个iOS项目的DLIB。 运行cmake导致libdlib.a和一个.o文件的加载。 当我将这个库添加到一个Xcode项目时,我得到警告,这个库还没有为arm64 。 我的问题是两部分: 我怎样才能构buildiOS的DLIB(我尝试cmake **path_to_source** -DCMAKE_OSX_ARCHITECTURE="arm64"但它造成了大量的错误,例如unknown type name '__uint32_t'; did you mean '__uint128_t' )? 运行cmake时所有build立的.o文件的目的是什么? 我是否需要将它们包含在Xcode项目中?

如何使Cmake在最终编译阶段而不是检测时使用特定的编译器和标志?

我正在尝试从Mac OS X到iOS进行交叉编译。 使用clang将源代码交叉编译为iOS目标很容易。 我们只需要3个参数就可以工作。 clang -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -miphoneos-version-min=4.3 但问题是我必须build立一个与Cmake打包的库(Bullet Physics)。 据我所知,Cmake还没有iOS支持。 所以,我做了一个工具链文件。 SET (CMAKE_SYSTEM_NAME "Generic") SET (CMAKE_SYSTEM_VERSION "4.3") SET (CMAKE_SYSTEM_PROCESSOR "arm") SET (CMAKE_CROSSCOMPILING TRUE) SET (SDKVER "4.3") SET (DEVROOT "/Developer/Platforms/iPhoneOS.platform/Developer") SET (SDKROOT "/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk") SET (CMAKE_OSX_SYSROOT "${SDKROOT}") SET (CMAKE_OSX_ARCHITECTURES "armv6" "armv7") SET (CMAKE_C_COMPILER "${DEVROOT}/usr/bin/clang") SET (CMAKE_CXX_COMPILER "${DEVROOT}/usr/bin/clang++") SET (CMAKE_C_FLAGS "-arch armv6 -arch armv7 […]