如何为不同的用户维护不同的编译库?
Posted
技术标签:
【中文标题】如何为不同的用户维护不同的编译库?【英文标题】:How to maintain different repositories for compilation for different users ? 【发布时间】:2013-05-22 15:11:02 【问题描述】:我不知道我的问题是否太明显、太复杂或者是否有道理。我试图查找信息,但无法得到任何答案...
我想为我的用户 A 维护一个 LLVM/Clang 的 SVN 存储库,它反映了主存储库...或等效的:我想使用用户 A 调用 clang/llvm 来编译我的程序并获取工具链的最新版本正在编译我的源代码。我希望能够在某种意义上更新我的本地存储库,它反映了主 LLVM 存储库的最新版本...
但是,我想为用户 B 维护第二个 SVN 本地存储库,所以当我想修改 LLVM 代码时,我将在用户 B 存储库中进行。还有更多...如果我以用户 B 的身份调用 clang/llvm,它将使用 LLVM 的修改版本编译我的源代码。
简而言之:我如何为 2 个用户维护 2 个存储库,我可以编译每个存储库,并且根据调用 clang/llvm 的用户,它会调用正确版本的二进制文件?
感谢关注;如果我的问题没有很好地表达,我很抱歉,希望有人能指出我如何改进它!
干杯...
【问题讨论】:
我建议切换到git
; git
更容易
好吧,我能做到!但是 LLVM 的原始主要存储库是 SVN ......所以如果有办法以解决我的问题的方式使用它,我会更喜欢 SVN!
@guipy git
也可以做svn git-svn man page
谢谢端庄!但是...如果我使用 Git,我需要修改 LLVM makefile 吗?或者有什么方法可以轻松解决我的问题?
【参考方案1】:
总之……
1) 如果用户使用不同的机器:
保留两个包含工具链的不同 SVN 存储库。每个用户都将签出自己的存储库并使用“正确的”编译器来编译其代码。这两个工具链位于同一个目录下,每个用户只有一个可用的工具链。
2) 如果用户共享同一台机器:
保留两个包含工具链的不同 SVN 存储库。这两个工具链位于不同的目录中并且同时可用。为用户设置环境变量以指定工具链所在的位置。在 Linux 上,可以通过在 .bashrc 中设置变量,然后在 Makefile 中使用这些变量来完成。
在这两种情况下,如果可以的话,切换到 git 并使用两个分支而不是两个存储库。
【讨论】:
看起来不错。但是..我需要更改 LLVM 的 makefile,对吗?两个用户使用同一台机器...以上是关于如何为不同的用户维护不同的编译库?的主要内容,如果未能解决你的问题,请参考以下文章
如何为不同的 OS/Python 版本编译 Python C/C++ 扩展?
如何为不同的 linux 内核编译一个 linux 内核模块