ubuntuの下でC++コードをコンパイルする問題の解決

1453 ワード

同じコード、同じ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で置換を使用して解決する
2)printfで問題が見つからない:linuxの下でヘッダファイルを追加して解決する;
問題はヘッダファイルの問題に帰結する.環境構成の問題ではありません.
同じコードはmac oxとubuntuでコンパイルが完了しました.正常に動作する.コードがmacに書かれているため、一致して動作し、linuxに移行すると、ヘッダファイルの問題は考慮されません.
以上が本文のすべての内容で、みんなが好きになることを望みます.
文章を友達に共有したり、コメントを残したりするのに少し時間をかけてください.私たちは心からあなたの支持に感謝します!