嘿,我正在尝试用clang在OS X上编译使用c11标准库中的函数的c代码。
编译器选项-std=c11允许我使用c11语言特性。但是当我使用像at_quick_exit这样的新函数时,我得到了下面的警告implicit declaration of function 'at_quick_exit' is invalid in C99。
源代码中有下面这一行,clang选项#include <stdlib.h> -stdlib没有帮助。
我的系统:
OS X Yosemite 10.10.3
$ clang -v
Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.3.0
Thread model: posixUbuntu 14.04 LTS
$ clang -v
Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)
Target: x86_64-pc-linux-gnu
Thread model: posix更明确地说。如何在OS X上获得c11标准库?
谢谢你的任何帮助。
发布于 2015-05-23 10:38:54
通常,自托管系统编译器本身并不能提供完整的标准C环境,包括运行时库。通常,底层系统提供大部分(如果不是全部)库(和头文件),而编译器只是编译。
因此,如果您需要一些给定系统上没有提供的特定函数,那么您必须自己编写它们,或者从与您的目标系统兼容的某个可移植库中获取它们。
在这种情况下,您可能还会发现quick_exit()本身并不是由系统的libc提供的,因此自己编写这两个函数应该很容易。
https://stackoverflow.com/questions/30408197
复制相似问题