首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在子目录中生成go项目的C依赖项

如何在子目录中生成go项目的C依赖项
EN

Stack Overflow用户
提问于 2014-04-17 14:31:31
回答 1查看 2.6K关注 0票数 4

我正在为Go中的C库编写一个Go包装器。问题是,C库在许多Linux发行版上都不可用,所以我想要一个解决方案,在这个解决方案中,我“get github.com/me/mylibrary”不需要任何人安装库。

一种解决方案是将库的源代码添加到子目录中。然后,当我的项目是用go get构建时,我也需要自动构建这个库。但我不知道我怎么能自动完成这个任务。

或者,我可以有一个脚本来下载源代码,提取并构建它。

但我不知道如何将这些构建步骤与go构建工具连接起来。

链接静态库也不是最容易的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#cgo linux LDFLAGS: ./MyLib/lib/libMyLib.a -lstdc++ -lm -lX11

只要我从我的库构建,但只要我想从另一个项目构建相对路径是从该项目,而不是从我的库,所以它失败。

EN

回答 1

Stack Overflow用户

发布于 2014-04-17 14:55:34

根据command

当Go工具看到一个或多个Go文件使用特殊的导入"C“时,它将在目录中查找其他非Go文件,并将它们编译为Go包的一部分。任何.c、.s或.S文件都将使用C编译器编译。任何.cc、.cpp或.cxx文件都将使用C++编译器进行编译。

因此,您可以将C库源代码包括在存储库中,并且go将自动构建它。该页面还解释了如何将构建标志传递给编译器,以及您可能需要知道的其他任何事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23144556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文