1

問題が発生しました。

さて、私は独自の dylib ファイルを作成し、その中にいくつかのメソッドなどを記述したいと考えています。ご存知のように、通常のライブラリです。

わかりましたので、Xcode、新しいプロジェクトを開き、動的ライブラリを選択しました。*main_lib.c* ファイルを作成し、その中に次のメソッドを記述しました。

void printMessage(char *str){

    printf("%s", str);

}

明らかに、このファイルを .dylib ファイルにリンクしてプロジェクトをビルドしましたが、エラーは発生しませんでした。この後、別のプロジェクトを作成し、[コマンド ライン アプリケーション] を選択して main.c ファイルを作成しました。

ビルドした .dylib ファイルをこのプロジェクトにインポートしました。

ある友人に尋ねたところ、この時点でヘッダー ファイルを作成し、その中に dylib の関数プロトタイプを書き込む必要があるとのことでした。そこで、main_lib.h ファイルを作成し、このプロトタイプを宣言しました。

void printMessage(char *str);

この時点で、main.c ファイルに次のコードを記述します。

#include <stdio.h>
#include "main_lib.h"

int main(void){

    printMessage("just a try");

 return 0;    

}

しかし、これをビルドすると、次のように表示されます。

ld: symbol(s) not found for architecture x86_64

コンパイラがprintMessageを見つけられないということですよね?しかし、なぜ?私は何を間違っていますか?助けてください:)よろしくお願いします!

4

1 に答える 1

2

それを含めるには、「ビルドフェーズ」のターゲット依存関係ライブラリとのリンクに追加するだけで、動作するはずです。

于 2016-06-02T04:30:50.873 に答える