
最近找了个开源的项目,准备编译成静态库自己使用,但是在 M1 的 mac 上链接编译的时候报错了,网上搜了一圈都没有解决方法,来问下有没有大佬遇到过这样的问题。
开源项目是 c 语言开发的,自己开发的代码也是 c,编译器用的 mac 自带的 clang ,项目用 cmake 构建,后面我写了简单的 demo ,直接使用命令行编译也是一样的错误,实在有点想不明白。
错误如下:
Undefined symbols for architecture arm64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
CPU: Apple M1 Max 内存: 64G 系统版本: macOS Monterey 12.6 (21G115) clang 版本:
Apple clang version 14.0.0 (clang-1400.0.29.102) Target: arm64-apple-darwin21.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin cmake 版本:
cmake version 3.25.2 CMake suite maintained and supported by Kitware (kitware.com/cmake). Demo 静态库代码:
tt.h #ifndef DLB_TT_H #define DLB_TT_H void hello(void); #endif //DLB_TT_H tt.c #include "tt.h" #include <stdio.h> void hello(void) { printf("Hello, I m lj!\n"); } 1 missdeer 2023 年 2 月 12 日 via Android 出错信息不是给了吗,缺 main 函数 |
2 ysc3839 2023 年 2 月 12 日 via Android cmake add_library STATIC |