【发布时间】:2013-12-28 22:43:25
【问题描述】:
我知道在 Windows 上,默认情况下您会获得一些链接到您的进程的库,例如 kernel32.dll 等。Linux 上是否有任何等效的库?
我正在创建一些 Linux 二进制文件并寻找支持例程,尤其是 malloc 等。在 Windows 上,我只是在 HeapAlloc 之上实现了 malloc()(这也是 VS CRT 采用的方法)但我不确定在这里做什么。由于某些原因,如果可能的话,我不会在创建二进制文件时链接到 libc。
【问题讨论】:
-
据我所知,libc 是由 gcc 自动链接的(我认为链接实际上是动态的,所以它不应该占用更多的二进制空间)。因此,您应该可以通过包含适当的标头来访问 malloc() 等。你打算使用哪个编译器?
-
您实际上是在问默认库是什么,还是只需要有人指出“-nostdlib”?
-
AFAIK Linux 只响应系统调用,而 libc 几乎直接使用这些系统调用,并且唯一链接的东西是您正在使用的东西或它需要的东西。
-
也许这就是你要找的stackoverflow.com/questions/2782010/…?
-
@DeadMG 我认为您需要较低级别的调用来分配内存。请参阅我的答案中的编辑。可能是
mmap可以帮助你。
标签: c++