我遇到了一个问题。
好吧,我想创建我自己的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,对吗?但为什么?我究竟做错了什么?请帮助:)提前谢谢你们!