网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 ubuntu 下编译C++代码出现的问题解决
内容
    同样的代码, 同样的makefile 文件
    1)在mac 下顺利编译;
    2)在新的ubuntu 下,编译失败;
    报错信息: string.h 中各种 函数找不到;
    makefile:
    代码如下:
    //[这是后来添加的
    CL_HEADER := -I/usr/include/
    CL_LIBS := -L/usr/lib/
    //后来添加的]
    clcp: main.o cl_string_utils.o cl_log.o
    g++ ${CL_HEADER} ${CL_LIBS} -o clcp main.o cl_string_utils.o cl_log.o
    main.o: main.cpp cl_string_utils.h
    g++ ${CL_HEADER} ${CL_LIBS} -c main.cpp
    cl_string_utils.o: cl_string_utils.cpp cl_log.h
    g++ ${CL_HEADER} ${CL_LIBS} -c cl_string_utils.cpp
    cl_log.o: cl_log.cpp cl_log.h
    g++ ${CL_HEADER} ${CL_LIBS} -c cl_log.cpp
    clean:
    rm main.o clcp cl_string_utils.o cl_log.o
    ------------
    报错:
    代码如下:
    cl_string_utils.cpp: In constructor ‘CL_StringBuilder::CL_StringBuilder()':
    cl_string_utils.cpp:297:18: error: ‘memset' was not declared in this scope
    memset(s,0,sz);
    已经做的尝试:
    在$PATH 中添加 头文件路径 /usr/include/ source 后, 仍然无法编译通过;
    最终找到的解决方案
    1) memset 找不到问题: 在linux 下 使用 <string.h> 替换<string> 解决
    2)printf 找不到问题:在linux 下 添加 头文件<stdio.h> 解决;
    问题 归结为头文件 问题; 而不是什么环境配置问题;
    同一份 代码 已经在 mac ox 和 ubuntu 上完成编译; 正常运行;因为代码在mac 上写的, 一致运行良好, 转移到linux 上时, 就没有考虑到 头文件的问题;
    以上就是本文的全部内容了,希望大家能够喜欢。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/19 1:50:11