jdOY
V2EX  ›  程序员

关于 MBP 上链接静态库失败的问题

By jdOY at 2023 年 2 月 12 日 · 1518 次点击

最近找了个开源的项目,准备编译成静态库自己使用,但是在 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");
}
4 条回复
missdeer
   1
missdeer  
   2023 年 2 月 12 日 via Android
出错信息不是给了吗,缺 main 函数
ysc3839
   2
ysc3839  
   2023 年 2 月 12 日 via Android
cmake add_library STATIC
jdOY
   3
jdOY  
OP
   2023 年 2 月 12 日
@missdeer 应该不是的,调用库的代码是有 main 函数的
jdOY
   4
jdOY  
OP
   2023 年 2 月 12 日
@ysc3839 在 CMakeLists.txt 里面有加这个
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 32ms · 3.9.8.5