相关疑难解决方法(0)

CMake : FIND_PACKAGE(Threads) for Android 交叉编译

我正在使用 Android NDK 和 Cmake 来生成我的项目的共享库。

我正在将现有项目从 Ubuntu 移植到 Android,现在我需要移植一些可执行文件。我成功编译了所有需要Threads库的可执行文件 sexecpt 。

在 CMakeList.txt 中,FIND_PACKAGE(Threads)可以在为 Ubuntu 编译时找到该库,但不适用于 Android。

我跟着这个cmake 和 libpthread但没有成功。

我想我应该写这个FindThread.cmake文件,但我对 CMake 还很陌生,我真的不知道该怎么做,尤其是因为我不知道 Android 的线程库在哪里。

任何帮助,将不胜感激。谢谢

android pthreads cmake android-ndk

6
推荐指数
1
解决办法
3997
查看次数

使用iOS工具链进行CMake:找不到线程

我正在尝试使用ios-cmake生成针对iOS的Xcode项目.但是,它找不到Threads.这是一个简单的CMake脚本用于演示:

CMAKE_MINIMUM_REQUIRED (VERSION 2.8)
PROJECT (MyCITest)

SET (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")

########################
# EDIT: I've also tried adding the lines below prior to posting this question, 
# but there doesn't seem to be any effect.
# (http://stackoverflow.com/questions/8386897)

SET (CMAKE_REQUIRED_INCLUDES ${CMAKE_IOS_SDK_ROOT}/usr ${CMAKE_IOS_SDK_ROOT}/usr/include)
SET (CMAKE_CXX_FLAGS "--sysroot=${CMAKE_IOS_SDK_ROOT} ${CMAKE_CXX_FLAGS}")
SET (CMAKE_C_FLAGS "--sysroot=${CMAKE_IOS_SDK_ROOT} ${CMAKE_C_FLAGS}")

########################

FIND_PACKAGE (ZLIB REQUIRED)
FIND_PACKAGE (LibXml2 REQUIRED)
FIND_PACKAGE (Threads REQUIRED)
Run Code Online (Sandbox Code Playgroud)

从终端运行CMake:

cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/iOS.cmake -GXcode
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

-- Toolchain using default iOS SDK: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk
-- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/libz.dylib (found version "1.2.5") 
-- …
Run Code Online (Sandbox Code Playgroud)

cmake ios

6
推荐指数
2
解决办法
4475
查看次数

标签 统计

cmake ×2

android ×1

android-ndk ×1

ios ×1

pthreads ×1