首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apple开源开发人员库

Apple开源开发人员库
EN

Stack Overflow用户
提问于 2012-07-09 23:37:13
回答 3查看 429关注 0票数 1

我最近遇到了一个问题,我正在寻找一个特定的头文件。我在任何地方都找不到它,直到我在谷歌搜索中偶然发现了它的来源,我才找到了这个网站:

http://opensource.apple.com/release/mac-os-x-1068/

我的问题是:这些应该单独下载的项目,一次一个,是要在OSX上使用,还是应该已经包含在OSX的某个开发人员包中?我是一个新的OSX用户,目前我所知道的就是我有xcode,但似乎缺少一些我的代码(给我)正在寻找的库。

下面是我的cmake文件:

代码语言:javascript
运行
复制
project(myproject)
cmake_minimum_required(VERSION 2.8)
SET(CMAKE_BUILD_TYPE debug)
SET(CMAKE_C_FLAGS_DEBUG "-g -fPIC -O0 -pipe -std=c99")
SET(CMAKE_VERBOSE_MAKEFILE TRUE)
file(GLOB HEADER_LIST ./include/*.h)
include_directories(./include)
add_executable(${PROJECT_NAME} ${SRC_LIST} ${HEADER_LIST})
target_link_libraries(${PROJECT_NAME} -lpcap)

我的源文件中有

代码语言:javascript
运行
复制
#include <net/bpf.h>
#include <pcap.h>

但是,在尝试使用pcap中没有定义的结构时,我遇到了一些错误。我应该将pcap从这个苹果开源库中分离出来,还是作为一个更大的包的一部分?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-09 23:47:44

编辑:您的问题在于您依赖于私有的内部数据结构。不提供pcap-int.h,因为它不是公共API的一部分。

大多数库头文件(包括pcap)在/usr/include中都可用,尽管通常是从开发人员SDK链接它们,以便您可以控制构建所依据的特定版本。要使用cmake包含和链接正确的头文件和库,通常需要使用CMAKE_OSX_SYSROOT变量。您可以使用CMAKE_OSX_DEPLOYMENT_TARGET控制部署目标。例如,这是我的一个旧版本:

代码语言:javascript
运行
复制
set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.5.sdk")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.4)

Xcode的最新版本不再是/Developer版本,因此您需要指向/Applications/Xcode.app。您可以使用以下命令获取正确的路径:

代码语言:javascript
运行
复制
xcode-select -print-path

并不是opensource.apple.com上的所有内容都可以直接在SDK中使用。有些事情是私人的。你可以从opensource.apple.com安装它们,尽管我经常发现它们不能以这种方式正确构建(你经常不得不从苹果安装很多其他的软件包,这会让人头疼)。如果你需要这样的东西,只需安装“普通”版本并将其静态链接到你的程序中通常要容易得多。

但pcap应该可以很好地工作。您实际看到的问题是什么?

票数 3
EN

Stack Overflow用户

发布于 2012-07-09 23:42:46

它们不一定是“在OSX上使用的”,它们是 MacOS X。MacOS X的核心是达尔文,苹果通过http://opensource.apple.com提供了达尔文的源代码。你可以看看这些项目,看看达尔文是如何工作的。您可以修改它们并构建您自己的Darwin版本。您可以在您自己的项目中使用这些代码,如果您发现它适用的话(受您正在查看的任何组件附带的许可证条款的约束)。

票数 1
EN

Stack Overflow用户

发布于 2012-07-09 23:56:00

OS的发布没有构建组件所需的头文件。普通的10.7OSX甚至没有/usr/include目录。下载Xcode是第一步。然后,您需要在Xcode中安装Command Line Tools选项(Preferences -> Downloads -> Components)来安装头文件,或者需要确保项目的构建系统使用Xcode提供的SDK。如果您不需要Xcode IDE,现在还可以从Apple Developer Connection网站单独下载Xcode4.3的Command Line Tools组件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11398405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档