ubuntu 下编译C++代码出现的问题解决_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 上时, 就没有考虑到 头文件的问题;

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

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

时间: 2024-11-10 08:03:24

ubuntu 下编译C++代码出现的问题解决_C 语言的相关文章

如何在ubuntu下编译APK,这个APK的签名为非原生应用的签名?

问题描述 如题,想在ubuntu下编译一个APK,因为这个APK里要用到系统的一些代码,可是我不希望这个APK的签名为系统签名,如何做到?一般情况下编好后都是在out/...system/app下,而且只要你有手机的权限,就可以push apk到手机system/app下.我只是希望能编一个类似第三方的APK,如何做到?求大神解决. 问题补充:MyEyeOfJava 写道 解决方案 做自己的keystore文件,重新对APK进行签名~

在Ubuntu下编译wpa_supplicant

最近在研究WiFi联盟的多屏互动协议Miracast,其中需要用到wpa_supplicant,编译中遇到了一些问题,经过一下午的折腾也都解决了,下面分享给各位. 一.编译需要用到三个库源码包,分别是wpa_supplicant, openssl, libnl 1. wpa_supplicant是我们需要编译的源文件包,目前最新版本是1.1.在终端命令行下输入: wget http://hostap.epitest.fi/releases/wpa_supplicant-1.1.tar.gz 进行

gtk+-在ubuntu下编译一个开源软件,./configure时出现错误,求指教

问题描述 在ubuntu下编译一个开源软件,./configure时出现错误,求指教 显示的错误: checking for libgnome-2.0 >= 2.0.0 libgnomeui-2.0 >= 2.0.0 gtk+-2.0 >= 2.4.0 gnome-vfs-2.0 >= 2.6.0 libglade-2.0 >= 2.3.6... Package libgnome-2.0 was not found in the pkg-config search path.

如何在ubuntu下编译linux API文件?

问题描述 如何在ubuntu下编译linux API文件? 一个用到了Linux API的C文件,应该如何在ubunt下编译,我编译时总会出现系统头文件出错的情况或者缺少某个头文件 解决方案 gcc -wall -g xx.c -o xx 找出你调用的api函数x,使用man x,可以查看需要的头文件

在Ubuntu下编译FFMPEG

在之前,我们成功地使用mingw+msys在windows平台下编译FFMpeg,并生成了ffplay.exe.现在再在Ubuntu平台上重新编译一次.相对于在windows平台上编译需要的旷日持久而且异常艰难的工作,Ubuntu上编译ffmpeg可谓是非常轻松简单的,几条简单的命令就可以轻松完成. 首先,需要在Ubuntu界面上调处命令行界面,最方便的方式是使用快捷键Ctrl+Alt+T. 第二部是安装SDL.SDL是一个开源的多媒体开发库,可以设置图像和视频的绘制等操作.如果不安装SDL,F

在Windows环境下编译MySQL代码

写这篇文章的目的只是告诉朋友们如何编译MySQL代码,或许有些人觉得从Windows平台编译MySQL的代 码有些复杂,其实不然.如果您对本文中所提到的知识有任何疑问可以透过CSDN的MySQL板或者 MySQL@CHINA支援论坛寻求帮助.这篇文章中所提到的东西没有任何的创新性,只是对MySQL已有文档的总 结. 一.为什么要编译代码 我不知道阅读这篇文章的朋友你是否会注意MySQL手册.MySQL在线手册近期呈现一种"超越"趋势, 手册中所描述的内容很大部分都是开发版本中才能找到的

Ubuntu下编译飞鸽传书(IPMsg)

飞鸽传书在局域网中是一个非常常用的软件,它只要是文字交流和文件传送(支持文件夹),无需服务器支持,跨平台(Win/Mac/UNIX/Java)且免费开源.在windows下它只有一个可执行文件且有中文版,简单易用.不过在linux下要使用就没那么方便了,需要自己编译,而且编译的时候还错误多多.不过今天总算是勉强的把它编译通过并看起来它是可以正常使用了.1. 首先下载源码包,解压.然后将po/potfiles.in重命名为POTFILES.in(大写字母).因为我编译的时候提示找不到这个文件.2.

openjdk在ubuntu下编译通过后,我该怎么用gdb调试呢 (小的只有5金币 只能悬赏那么多了 )

问题描述 情景是这样的:ubuntu下成功编译openjdk7 接下来 我想先单步调试javac 看看它里边是怎么运行的 等把javac弄清楚了 在去看看jvm内部可是 在用gdb调试javac时 提示错误 我google了一下 原因可能是在编译openjdk时 没有添加调试信息我转去看看的它makefile 期待能在里边加上个gcc -g 这样的段子 可是我发现它的makefile是一层套一层 以小的的功力 基本是看不懂所以 我就想求教大大们 大家编译过openjdk7后 怎么调试它的啊(ub

C语言的语法风格与代码书写规范指南_C 语言

C代码: #include <stdio.h> int main(void) { printf("That is Right Style\n"); return 0; } 在一个标准的C语言程序中,最特殊的莫过于main函数了,而说到底它就是一个函数而已,仅仅因为它地位特殊拥有第一执行权力,换句话说,难道因为一个人是省长它就不是人类了?所以函数该有的它都应该有,那么函数还有什么呢? 函数大体上分为内联函数(C99)(内联函数并非C++专属,C语言亦有,具体见前方链接)和非内