Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

実行形態モジュールが正常に動作しない

実行形態モジュールが正常に動作しないのでソースコードを再コンパイルしたらコンパイルもしなくなった。macOS Mojave 10.14 にバージョンアップしたからでしょうか。何故でしょうか。コンパイルすると XCode のメッセージが出現します。

dyld: Symbol not found: _OBJC_IVAR_$_NSTextViewIvars.sharedData

Referenced from: /Applications/Xcode.app/Contents/SharedFrameworks/DVTDocumentation.framework/Versions/A/../../../../SharedFrameworks/DVTKit.framework/Versions/A/DVTKit

Expected in: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit

in /Applications/Xcode.app/Contents/SharedFrameworks/DVTDocumentation.framework/Versions/A/../../../../SharedFrameworks/DVTKit.framework/Versions/A/DVTKit

make: error: unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly!

make: error: You can set the path to the Xcode folder using /usr/bin/xcode-select -switch


のメッセージが出力されてコンパイルができないです。また動いていたロードも動きません。シェルがおかしいようです。


* 重複投稿を削除し、内容をこちらに編集いたしました。 Apple Inc.

投稿日 2018/10/12 04:23

返信
返信: 24

2018/10/14 13:01 和行103 への返信

> Xcodeで作ったソフトのUnix machineへの移行の手立ては用意されていますか


用意されていません。


> Unix machineとの互換性、ソースコードの互換性が無いと困るのです。


それではXcodeは使わない方がいいですね。Homebrewでgccなどをインストールすることも可能です。


> dylibとあるのはダイナミックライブラリがmakeのccコマンドで必要になっているのでしょうか。


"/usr/lib"の中身をみるとわかるように、macOSのライブラリは皆".dylib"になっています。また、古い記事ですが次のように書いてあります。


Apple does not support statically linked binaries on Mac OS X. A statically linked binary assumes binary compatibility at the kernel system call interface, and we do not make any guarantees on that front. Rather, we strive to ensure binary compatibility in each dynamically linked system library and framework.


AppleはMac OS X上で静的にリンクされたバイナリをサポートしていません。静的にリンクされたバイナリはカーネルシステムコールインタフェースでバイナリ互換性を前提としており、その保証は一切行いません。むしろ、動的にリンクされた各システムライブラリとフレームワークでバイナリ互換性を確保するよう努めています。(グーグル翻訳)


https://developer.apple.com/library/archive/qa/qa1118/_index.html#//apple_ref/doc/uid/DTS10001666


> ダイナミックライブラリの作り方、ローダーによるlinkageの方法(ccのアーギュメント)を可能ならご教示願います。


作りかたは、プロジェクトを新規に作って、ソースコードをコピペもしくはプロジェクトに加えた後、メインメニューからProduct → Archiveを選択するだけです。


".dylib"や".framework"は、プロジェクトに加えれば、linkageなどはXcodeが勝手にやってくれます。


> ダイナミックにすると、配布ソフトにライブラリ(*.so)まで必要となります。スタティックなら実行形態(main関数の数)だけ配布すれば良いはずですから。


そうですね。Unix互換機でいうところの".so"がmacOSでは".dylib"です。


> 如何なるファイルのパスをxcode-selectで指定すれば良いのでしょうか。


デフォルトでは"/Applications/Xcode.app/Contents/Developer"になっていると思いますが、

ユーザがアップロードしたファイル

これを"/Library/Developer/CommandLineTools"に変えたらうまくいったケースもあるようです。


https://dev.classmethod.jp/devenv/homebrew-doesnt-work-10_11_4/

2018/10/16 11:42 和行103 への返信

コマンドラインから実行するアプリを作るには、"Command Line Tool"を選択します。

ユーザがアップロードしたファイル

mainを書き換えて、メインメニュー→Product→Archivesにて、Distribute Contentボタンを押し、Built Productsを選択してNextボタンを押し、ディレクトリーを選んで保存します。

ユーザがアップロードしたファイル

ユーザがアップロードしたファイル

保存したディレクトリー配下のProducts/usr/local/binにバイナリーが保存されているので実行します。

ユーザがアップロードしたファイル

2018/10/12 09:12 品川地蔵 への返信

Xcode 再インストールしましたが、make ができません。メッセージは同じようですね。


dyld: Symbol not found: _OBJC_IVAR_$_NSTextViewIvars.sharedData

Referenced from: /Applications/Xcode.app/Contents/SharedFrameworks/DVTDocumentation.framework/Versions/A/../../../../SharedFrameworks/DVTKit.framework/Versions/A/DVTKit

Expected in: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit

in /Applications/Xcode.app/Contents/SharedFrameworks/DVTDocumentation.framework/Versions/A/../../../../SharedFrameworks/DVTKit.framework/Versions/A/DVTKit

make: error: unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly!

make: error: You can set the path to the Xcode folder using /usr/bin/xcode-select -switch

2018/10/12 23:13 和行103 への返信

 Xcodeのcommand line tools はインストールしていますか。Xcodeを起動した後、自動で追加インストールされたかどうか、追加インストールを聞いてきたような気がしますが。もしXcodeをインストールしただけで、一度も起動していなければ、必要条件が整っていないと思います。Xcode を起動しなくとも、xcode-select --install で追加インストールできるようですが。

2018/10/13 13:30 和行103 への返信

 新しいプロジェクトを Command line tool / C languageで作成し、一度クローズします。プロジェクトフォルダの中の、main.c ファイルを探して、同じ場所に全てのソースファイルをコピーします(main.cは置き換えになりますね)。プロジェクトを再度読込み、Fileメニューから Add Files でソースファイルを取り込めばできるはずです。プロジェクト設定は多少触る必要があるかも知れませんが。

2018/10/14 03:48 hohokihai への返信

Appleさんの下でUnix machineとのソースの互換性が保てる方法はないですか。来る前にあの世に行くかもしれませんが、可能性として残っているUnix machineへの移植に柔軟に対応できる方法でソースコードの製作を続けたいのです。xcodeで作ったソフトのUnix machineへの移行の手立ては用意されていますか。

またライブラリはxcodeで如何様に作るのでしょうか。作り方は単純ですか、。


Unix machineとの互換性、ソースコードの互換性が無いと困るのです。iMacも持っており、まだ動かせるかも知れませんが Mojave では同様にダメでしょうか。


、、、。

2018/10/14 04:34 和行103 への返信

dylib とあるのはダイナミックライブラリがmakeのccコマンドで必要になっているのでしょうか。UNIXではスタティックが基本ですが、近年ダイナミックも可能のようで、AIXなどでは試したことがございます。ccのアーギュメントで指定できると思うのですが、その正しい方法は忘れました。ご教示願いたいです。ダイナミックにすると、配布ソフトにライブラリ(*.so)まで必要となります。スタティックなら実行形態(main関数の数)だけ配布すれば良いはずですから、。


ダイナミックライブラリの作り方、ローダーによるlinkageの方法(ccのアーギュメント)を可能ならご教示願います。


、、、。

2018/10/14 10:45 和行103 への返信

失敗していたxcode ver 10.1 Beta1からver10.1 Beta2にバージョンアップしましたが、同じようなメッセージが出力されmakeができません。

dyld: Symbol not found: _OBJC_IVAR_$_NSTextViewIvars.sharedData

Referenced from: /Applications/Xcode.app/Contents/SharedFrameworks/DVTDocumentation.framework/Versions/A/../../../../SharedFrameworks/DVTKit.framework/Versions/A/DVTKit

Expected in: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit

in /Applications/Xcode.app/Contents/SharedFrameworks/DVTDocumentation.framework/Versions/A/../../../../SharedFrameworks/DVTKit.framework/Versions/A/DVTKit

make: error: unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly!

make: error: You can set the path to the Xcode folder using /usr/bin/xcode-select -switch

如何なるファイルのパスをxcode-selectで指定すれば良いのでしょうか。


また、コンパイルして動いていたソケットデーモンのプログラム群が起動できなくなってます。

2018/10/15 08:26 hohokihai への返信

丁寧なご説明に感謝です。暫くテストが続くでしょう。

xcode を動かすことも含めてのテストです。xcode で build した実行形態モジュールをコマンドラインから実行するには、どのディレクトリをコピーしたら良いのでしょうか。試しに Test1 と言うコマンドラインプロジェクトを作ってみましたが、左側のガイドウィンドウの中の Product の中に Test1 が存在するのにも関わらず、コマンドラインから実行するためにディレクトリを ls, cd しても Product は出てきません。実行形態は何処にあるのでしょうか。

2018/10/12 09:33 xy への返信

パスの設定は xcode-select -s <path> で実施するのでしょうか。path に ~/tool/fullduplex/bin/Allmake と指定してみましたがダメでした。Xcode のプロジェクトを開いてそこでソースコードを作成する必要があるのでしょうか。今までは vi でソースコードを入力し make でコンパイルしていました。

2018/10/13 04:16 品川地蔵 への返信

sudo xcode-select --install でコマンドのインストールはできたようですが、コマンドの実行はやっていません。アップルさんらしくないなぁ。xcode のインストール位は App store から自動でやっていただきたいですね。

実行形態モジュールが正常に動作しない

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。