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 回答