当前位置: 技术问答>linux和unix
undefined reference to `fmemopen'
来源: 互联网 发布时间:2016-04-14
本文导语: undefined reference to `fmemopen' make时出现此问题,但相关头文件也包含了,extern也写了: #include extern "C" FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __THROW; 不知是哪个库没添加,网上都找不到,希望了...
undefined reference to `fmemopen'
make时出现此问题,但相关头文件也包含了,extern也写了:
#include
extern "C" FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __THROW;
不知是哪个库没添加,网上都找不到,希望了解的同学能帮帮忙,感激不尽!
make时出现此问题,但相关头文件也包含了,extern也写了:
#include
extern "C" FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __THROW;
不知是哪个库没添加,网上都找不到,希望了解的同学能帮帮忙,感激不尽!
|
你需要定义宏:
#define _GNU_SOURCE
#include
这是GBU的扩展,所以需要定义这个宏。
#define _GNU_SOURCE
#include
这是GBU的扩展,所以需要定义这个宏。
|
man里的例子:
#define _GNU_SOURCE
#include
#include
#include
#include
int main(int argc, char *argv[])
{
FILE *out, *in;
int v, s;
size_t size;
char *ptr;
assert(argc == 2);
in = fmemopen(argv[1], strlen(argv[1]), "r");
if (in == NULL) { perror("fmemopen"); exit(EXIT_FAILURE);}
out = open_memstream(&ptr, &size);
if (out == NULL) { perror("fmemopen"); exit(EXIT_FAILURE);}
for (;;) {
s = fscanf(in, "%d", &v);
if (s
#define _GNU_SOURCE
#include
#include
#include
#include
int main(int argc, char *argv[])
{
FILE *out, *in;
int v, s;
size_t size;
char *ptr;
assert(argc == 2);
in = fmemopen(argv[1], strlen(argv[1]), "r");
if (in == NULL) { perror("fmemopen"); exit(EXIT_FAILURE);}
out = open_memstream(&ptr, &size);
if (out == NULL) { perror("fmemopen"); exit(EXIT_FAILURE);}
for (;;) {
s = fscanf(in, "%d", &v);
if (s