1

最近、特定のヘッダー ファイルを探しているときに問題が発生しました。このサイトにつながるGoogle検索でソースに出くわすまで、どこにも見つかりませんでした:

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

私の質問: これらのプロジェクトは、一度に 1 つずつ個別にダウンロードして OSX で使用することになっていますか、それとも OSX の開発者パッケージに既に含まれていることになっていますか? 私は新しい OSX ユーザーであり、現在わかっているのは、ボックスに xcode があることだけですが、私のコード (私に与えられた) が探しているライブラリがいくつか欠けているようです。

私のcmakeファイルは次のようになります。

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)

私のソースファイルには

#include <net/bpf.h>
#include <pcap.h>

ただし、定義されていない pcap にあるはずの構造を使用しようとすると、エラーが発生します。このアップル オープン ソース ライブラリとは別に pcap をプルする必要がありますか、それともより大きなパッケージの一部としてプルする必要がありますか?

ありがとう

4

3 に答える 3

3

編集:あなたの問題は、プライベートな内部データ構造に依存していることです。pcap-int.hパブリック API の一部ではないため、提供されていません。


ほとんどのライブラリ ヘッダー (pcap を含む) は で使用できますが/usr/include、通常は開発者 SDK からリンクして、ビルド対象の特定のバージョンを制御できるようにします。cmake を使用して正しいヘッダーとライブラリをインクルードおよびリンクするには、通常、CMAKE_OSX_SYSROOT変数を使用します。で配置ターゲットを制御しCMAKE_OSX_DEPLOYMENT_TARGETます。たとえば、これは私の古いものです。

set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.5.sdk")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.4)

Xcode の最新バージョンは に含まれていない/Developerため、 を指定する必要があります/Applications/Xcode.app。次を使用して正しいパスを取得できます。

xcode-select -print-path

opensource.apple.com のすべてが SDK で直接利用できるわけではありません。プライベートなものもあります。それらを opensource.apple.com からインストールすることもできますが、その方法では正しくビルドされないことがよくあります (Apple から他の多くのパッケージをインストールする必要があり、頭痛の種になることがよくあります)。そのようなものが必要な場合は、「通常の」バージョンをインストールしてプログラムに静的にリンクする方がはるかに簡単です。

しかし、pcap は正常に動作するはずです。実際にどのような問題が発生していますか?

于 2012-07-09T15:47:43.510 に答える
1

OS X は、コンポーネントのビルドに必要なヘッダー ファイルなしでリリースされています。通常の 10.7 OS X には/usr/includeディレクトリさえありません。ダウンロードXcodeは最初のステップです。次に、Command Line Toolsオプション ( Preferences-> Downloads-> Components) を Xcode 内にインストールしてヘッダーをインストールするか、プロジェクトのビルド システムが Xcode によって提供される SDK を使用するようにする必要があります。Xcode IDE が必要ない場合は、Command Line ToolsXcode 4.3 のコンポーネントを Apple Developer Connection Web サイトから個別にダウンロードすることもできます。

于 2012-07-09T15:55:59.873 に答える
1

これらは必ずしも「OSX で使用する」必要はなく MacOS X です。MacOS X の心臓部は Darwin であり、Apple は Darwin のソース コードをhttp://opensource.apple.comから入手できるようにしています。これらのプロジェクトを見て、ダーウィンがどのように機能するかを確認できます。それらを変更して、独自のバージョンの Darwin を構築できます。該当する場合は、独自のプロジェクトでコードを使用できます (対象のコンポーネントに添付されているライセンス条件に従います)。

于 2012-07-09T15:42:46.247 に答える