gpt4 book ai didi

c - stdlib.h 没有 putenv 的声明

转载 作者:IT王子 更新时间:2023-10-29 00:49:53 26 4
gpt4 key购买 nike

我尝试在 Ubuntu 13.04(64 位)上使用 gcc 4.7.3clang 3.2.1 编译以下代码:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int main() {
putenv("SDL_VIDEO_CENTERED=1");

return 0;
}

我希望在 stdlib.h header 中声明 putenv,但我收到以下警告:

test.c: In function ‘main’:
test.c:6:5: warning: implicit declaration of function ‘putenv’ [-Wimplicit-function-declaration]

为什么我的 header 中缺少此函数的声明?

最佳答案

您必须定义某些宏。查看 man 3 putenv:

NAME
putenv - change or add an environment variable

SYNOPSIS
#include <stdlib.h>

int putenv(char *string);

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

putenv(): _SVID_SOURCE || _XOPEN_SOURCE

在包含 stdlib.h 之前尝试定义 _SVID_SOURCE_XOPEN_SOURCE,如下所示:

#define _XOPEN_SOURCE
#include <stdlib.h>

或者在编译时(使用-D),比如:

gcc -o output file.c -D_XOPEN_SOURCE

关于c - stdlib.h 没有 putenv 的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com