2010-01-17 62 views
2

我想在我的Dreamhost Linux主机上安装qt。如您所知,任何托管服务都将限制其用户资源,如CPU和内存。链接QT时,它会导致ld链接器超过400M的内存,然后它被Dreamhost的进程监视器杀死... 我试图谷歌几个小时,没有找到我的问题的任何真正的答案。我正在寻找可以在一定的物理内存下运行程序的Linux命令实用程序。我的意思是,我可以运行它:在一定量的物理内存下运行程序?

memory-limit -m 200M ld ld-args ... 

然后,劳工处会在200M物理内存运行,但是这并不意味着LD不能分配超过200M。当ld分配超过200M时,物理内存不会增加,它将使用交换磁盘。而且ld内存的RES部分不会超过200M ...我知道,我需要的功能听起来像是一台虚拟机,我想知道KVM是否可以提供这样的功能。我真的想知道是否有这样的工具... :)如果你知道这件事,请帮助。

谢谢!

回答

0

如果这只是编译QT,最简单的解决方案是将它编译到其他地方(具有相同操作系统和arch的虚拟机?),然后只复制二进制文件。

+0

啊,但我真的想在服务器上构建它:) – 2010-01-17 12:30:16

+0

这有什么好处? – 2010-01-31 11:45:45

1

添加一些交换空间; Linux可以交换文件,所以如果你可以创建几千兆字节的交换文件,那将会完成链接。

然而,你真的应该能够得到一个Dreamlinux的二进制包,并安装它,而不是试图在那里编译QT。

0

你试过减少依赖关系吗?我假设你完全不使用GUI来进行Web应用程序的开发,也许你只需要QtCore共享库,这个库应该小得多。

默认qmake链接与QtGUI。

+0

我需要QtWebkit,它需要QtGUI,所以... – 2010-01-17 12:29:22

0

不完全的回答你的问题,但你可以尝试运行LD使用这些选项设置,这样可以提高其生存的机会:

  • --no-keep-memory
  • --reduce-memory-overheads
+0

我已经添加了这两个选项,并且这使得qtgui链接正确。但仍在qtwebkit上存档... – 2010-01-17 12:19:25

相关问题