当前位置: 首页 > 编程笔记 >

ubuntu 下编译C++代码出现的问题解决

盖嘉珍
2023-03-14
本文向大家介绍ubuntu 下编译C++代码出现的问题解决,包括了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 上时, 就没有考虑到 头文件的问题;

以上就是本文的全部内容了,希望大家能够喜欢。

请您花一点时间将文章分享给您的朋友或者留下评论。我们将会由衷感谢您的支持!

 类似资料:
  • 代码不编译。我不明白错误是什么,请帮忙) 错误文本:g-Wall-c“main.cpp”(/media/ad/4GB-NTFS/prog/laba2)main。cpp:In函数“int main()”:main。cpp:46:12:错误:调用“Record::Record()”记录r1;^主要的cpp:12:1:注意:候选者:Record::Record(std::\u cxx11::string

  • 我一直在互联网上努力研究如何在编译成可运行的jar后显示图像图标。我发现这个问题太晚了,我以前在eclipse中运行过很多次程序,一切都正常,现在6个月后项目完成了,我用eclipse编译了我的程序,没有音频或图像工作。在网上阅读,它说关于图片文件夹的位置应该在罐子里,但我的没有放在那里? 我在源文件夹中移动了图片文件夹,但它不起作用。我有一种感觉,这可能与资源的路径有关。。。但这只是猜测。 我已

  • 最近,我们正在将java构建作业从serverA迁移到serverB,java源代码(包含中文字符)在使用Ant的原始serverA上编译良好( ),但是,当我们将相同的代码签出到新的serverB并运行相同的Ant脚本时,出现了编码错误,如“用于编码GBK的Unmappable character”(Unmappable character for encoding GBK)。(JDK版本相同)

  • 本文向大家介绍解决Android 源码编译错误的问题,包括了解决Android 源码编译错误的问题的使用技巧和注意事项,需要的朋友参考一下 如下所示: Building with Jack: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex FAILED: /bin/bash ou

  • 我只是想测试JAVACPP并尝试了我的eclipse中网页中的第一个示例: http://code.google.com/p/javacpp/(Legacyclass和Legacy库) 我一打字: javac-cp libs\javacpp.jar:. src\LegacyLibrary.java 在命令行中,我得到以下错误消息: src\LegacyLibrary.java: 1:错误:包com