ubuntu 下編譯C++代碼出現(xiàn)的問題解決
同樣的代碼, 同樣的makefile 文件
1)在mac 下順利編譯;
2)在新的ubuntu 下,編譯失??;
報(bào)錯(cuò)信息: 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
------------
報(bào)錯(cuò):
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 上完成編譯; 正常運(yùn)行;因?yàn)榇a在mac 上寫的, 一致運(yùn)行良好, 轉(zhuǎn)移到linux 上時(shí), 就沒有考慮到 頭文件的問題;
以上就是本文的全部內(nèi)容了,希望大家能夠喜歡。
請您花一點(diǎn)時(shí)間將文章分享給您的朋友或者留下評論。我們將會(huì)由衷感謝您的支持!
相關(guān)文章
C++基于Boost.Asio實(shí)現(xiàn)端口映射器的過程詳解
Boost.Asio 是一個(gè)功能強(qiáng)大的 C++ 庫,用于異步編程和網(wǎng)絡(luò)編程,它提供了跨平臺(tái)的異步 I/O 操作,在這篇文章中,我們將深入分析一個(gè)使用 Boost.Asio 實(shí)現(xiàn)的簡單端口映射服務(wù)器,文中有詳細(xì)的代碼講解,需要的朋友可以參考下2023-11-11C++求四個(gè)正整數(shù)最大公約數(shù)的方法
這篇文章主要介紹了C++求四個(gè)正整數(shù)最大公約數(shù)的方法,涉及C++求余算法的運(yùn)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05VC中LINK 2001 和 LINK 2009 的錯(cuò)誤的解決方法
最近將兩個(gè)開源C++項(xiàng)目編譯成windows版本的時(shí)候遇到很多問題,編譯的時(shí)候總是報(bào)錯(cuò),報(bào)的最多的是無法解析的外部符號”,經(jīng)過近3天的折騰總算都通過了,這里是一些總結(jié)2020-10-10C語言實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05