ubuntu 下編譯C++代碼出現(xiàn)的問題解決

字號:


    同樣的代碼, 同樣的makefile 文件
    1)在mac 下順利編譯;
    2)在新的ubuntu 下,編譯失??;
    報錯信息: string.h 中各種 函數(shù)找不到;
    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);
    已經(jīng)做的嘗試:
    在$PATH 中添加 頭文件路徑 /usr/include/ source 后, 仍然無法編譯通過;
    最終找到的解決方案
    1) memset 找不到問題: 在linux 下 使用 <string.h> 替換<string> 解決
    2)printf 找不到問題:在linux 下 添加 頭文件<stdio.h> 解決;
    問題 歸結(jié)為頭文件 問題; 而不是什么環(huán)境配置問題;
    同一份 代碼 已經(jīng)在 mac ox 和 ubuntu 上完成編譯; 正常運行;因為代碼在mac 上寫的, 一致運行良好, 轉(zhuǎn)移到linux 上時, 就沒有考慮到 頭文件的問題;
    以上就是本文的全部內(nèi)容了,希望大家能夠喜歡。