c - 集成到静态库中的可重定位对象列表
问题描述
下面的归档文件(shuffler.a
)是用下面的命令创建的:
$ go install github.com/myhub/cs61a
$
$
$ file pkg/linux_amd64/github.com/myhub/cs61a/shuffler.a
pkg/linux_amd64/github.com/myhub/cs61a/shuffler.a: current ar archive
$
$
但是存档文件中集成了不止一个文件(可重定位):
$ ar -t pkg/linux_amd64/github.com/myhub/cs61a/shuffler.a
__.PKGDEF
_go_.o
$
$
_go_.o
是src/github.com/myhub/cs61a/shuffler/shuffle.go
源代码的可重定位二进制形式
表示什么__.PKGDEF
?ar –rcs libourown.c one.o two.o
在 C 世界中不添加此文件
解决方案
由于 go 代码是按包组织的,而 C 代码不是,并且由于 go 库/二进制文件是按包编译的,我会大胆猜测 PKGDEF 具有有关编译代码的 go 语言包的信息。
推荐阅读
- python - 如何打印 a 的内容?
- c# - MySql 查询无法在 2 台安装了相同软件的 PC 上运行
- java - 在客户端和应用程序之间同步数据库
- php - 我在 SQL 事务中收到未捕获的 PDO 异常错误
- c# - OpenTK 4.0 + Gtk# 绑定初始化
- c# - 控制台在 Macbook Pro 上的 Visual Studio 中根本不会输出或显示
- javascript - Getting "Undefined" value for Variable even though i have defined variable
- python - tkinter image change within a label when i gpio state changes
- c++ - Initialisation of const member array c++17
- java - why does it show aarayindexoutofboundexception on changing the t[n] though it is under limits