已解决:最后的链结失败: 错误的值

RT0.o: relocation R_X86_64_PC32 against symbol \`phgTetFaceVertexi\' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: 最后的链结失败: 错误的值
collect2: error: ld returned 1 exit status
  1. 运行如下代码,查看返回情况。
ldd test
linux-vdso.so.1 =>  (0x00007fff0fd95000)
libsofile.so => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f937b5de000)
/lib64/ld-linux-x86-64.so.2 (0x0000563f7028c000)
  1. 如上代码输出发现,确实是找不到对应的.so文件。
    这是由于linux自身系统设定的相应的设置的原因,即其只在/lib and /usr/lib下搜索对应的.so文件,故需将对应so文件拷贝到对应路径。
sudo cp libsofile.so /usr/lib

再次执行./test,即可成功运行。

已解决:ubuntu init.c:(.text+0x30):对‘main’未定义的引用

网上大部分资料都是说因为Makefile中源码部分,应该将含有main函数的源程序名字放在第一个,不然找不到入口,总的来说就是因为main入口不对。总结一下,造成这个错误的原因有如下:

  1. main拼写错误
  2. 主函数中没有main函数
  3. makefile中源程序放置顺序应该是含有main函数的在前面
  4. makefile中源程序没有加后缀名

已解决: Makefile:xxx: recipe for target xxx failed

原因:原来是linux下面的那些命令,比如iconv,mv等,执行结果的,如果是没有错误的,会返回0,表示正常的,而此处hhc是windows下面的工具,其返回1表示执行结果正常,导致了makefile收到1,以为是程序执行错了呢,所以报错。
解答:设置合适的返回值,例如C语言,主函数设置返回值为0.

已解决:问题:Python文件运行时报TabError: inconsistent use of tabs and spaces in indentation

原因:说明Python文件中混有Tab和Space用作格式缩进。这通常是使用外部编辑器编辑Python文件时,自动采用Tab进行格式缩进。
解决:将Tab转换成4个Space(通常)或者用Python编辑器(如pyDev)格式化。

已解决:关于发邮件报错535 Error:authentication failed解决方法

调用163邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件会让我们设置客户端授权码,这个授权码替代上面代码部分的passwd即可成功发送邮件。

已解决:/bin/sh^M:损坏的解释器: 没有那个文件或目录

脚本文件保存时使用了DOS格式,用DOS2UNIX转为UNIX格式,也可以用vim打开,用:set ff=unix转换。

不要在 Windows下编辑脚本文件,否则经常会遇到这种问题
解决:可以用 vim 打开文件,然后执行冒号命令:

vim
:set ff=unix
:wq

已解决:warning: initialization makes pointer from integer without a cast [-Wint-conversion]

解决:检查指针有没有错误赋值,这个警告会造成段错误。

已解决: recipe for target ‘TestFuncPointer’ failed

makefile:20: recipe for target 'TestFuncPointer' failed
make: *** [TestFuncPointer] Error 1

原来是linux下面的那些命令,比如iconv,mv等,执行结果的,如果是没有错误的,会返回0,表示正常的,而此处hhc是windows下面的工具,其返回1表示执行结果正常,导致了makefile收到1,以为是程序执行错了呢,所以报错.

已解决:xerbla.f:(.text+0x69): undefined reference to '_gfortran_st_write`

xerbla.f:(.text+0x69): undefined reference to '_gfortran_st_write'
xerbla.f:(.text+0x7d): undefined reference to '_gfortran_transfer_character'
xerbla.f:(.text+0x91): undefined reference to '_gfortran_transfer_integer'
xerbla.f:(.text+0x99): undefined reference to '_gfortran_st_write_done'
xerbla.f:(.text+0xa5): undefined reference to '_gfortran_stop_numeric'
collect2: ld returned 1 exit status

解决这个错误的方法就是在链接库的时候加 -lgfortran

已解决 warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]

const char* str= "some string";

如果是长字符串加上const!

已解决:“undefined reference to” 问题汇总及解决方法

参考"undefined reference to" 问题汇总及解决方法
在链接命令中给出所依赖的库时,需要注意库之间的依赖顺序,依赖其他库的库一定要放到被依赖库的前面,这样才能真正避免undefined reference的错误,完成编译链接。

已解决:warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings

在C++11中有明确规定

char* p = "abc"; // valid in C, invalid in C++

如果你进行了这样的赋值,那么编译器就会跳出诸如标题的警告。但是如果你改成下面这样就会通过warning

char* p = (char*)"abc"; //OK
char const *p="abc";//OK

这到底是怎么一回事呢?事实上,我们在学习c或者c++的时候都知道,如果在赋值操作的时候,等号两边的变量类型不一样,那么编译器会进行一种叫做 implicit conversion 的操作来使得变量可以被赋值。

在我们上面的表达式中就存在这样的一个问题,等号右边的"abc"是一个不变常量,在c++中叫做string literal,type是const char *,而p则是一个char指针。如果强行赋值会发生什么呢?没错,就是将右边的常量强制类型转换成一个指针,结果就是我们在修改一个const常量。编译运行的结果会因编译器和操作系统共同决定,有的编译器会通过,有的会抛异常,就算过了也可能因为操作系统的敏感性而被杀掉。

像这种直接将string literal 赋值给指针的操作被开发者们认为是deprecated,只不过由于以前很多代码都有这种习惯,为了兼容,就保留下来了。

遇到的debug整理20190107相关推荐

  1. 【mmdeploy】mmseg转ONNX/TensorRT,附推理代码

    目录 1.关于mmdeploy 2.环境安装 2.1预编译安装(Linux-x86_64, CUDA 11.x, TensorRT 8.2.3.0): 2.2预编译安装(Linux-x86_64, C ...

  2. PyTorch Python API详解大全(持续更新ing...)

    诸神缄默不语-个人CSDN博文目录 具体内容以官方文档为准. 最早更新时间:2021.4.23 最近更新时间:2023.1.9 文章目录 0. 常用入参及函数统一解释 1. torch 1.1 Ten ...

  3. 用python分析HTTP请求中各过程用时情况(通过分析抓包文件pcap实现)

    HTTP卡扯皮终结工具,到底是哪个部分造成的卡?客户端?服务器?网络? 想通过抓包看HTTP过程中详细的用时情况,如: 建立TCP连接用了多少时间? 客户端发送GET/POST请求数据到服务器用了多少 ...

  4. 【Java学习整理】2021最新版 Eclipse下载+安装+页面介绍+常见问题解答+查看源码+常用快捷键+Debug调试(详细)

    学习 Java 语言程序设计必须选择一个功能强大.使用简单,能够辅助程序设计的 IDE. Eclipse 是目前最流行的 Java 语言开发工具,它强大的代码辅助功能,可以帮助开发人员自动完成语法修正 ...

  5. Android Camera简单整理(四)-Android Camera性能Debug经验

    针对手机厂商相机性能优化部分进行重点总结记录 Android Camera性能Debug经验 一.相机性能场景 二.相机性能debug工具及方案建议 1.dumpsys media.camera 1. ...

  6. 【整理】ABAP快捷启动Debug三种方式

    ABAP快捷启动Debug三种方式 1./H :Start Debugger 正常的Debug模式,会从头开始执行: 2./HS :Start System Debugging 区别于"/H ...

  7. DEBUG -- CLOSE BY CLIENT STACK TRACE问题的两种解决方案,整理自网络

    1.DEBUG -- CLOSE BY CLIENT STACK TRACE 最近用c3p0遇到各种奇怪的问题,也不知道是它不行还是我不行. 今天又遇到了一个"DEBUG -- CLOSE ...

  8. vs如何把c语言编译成静态库,VS中Debug和Realease、及静态库和动态库的区别整理(转)...

    一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...

  9. VS中Debug和Realease、及静态库和动态库的区别整理

    一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...

最新文章

  1. 50个顶级开源营销应用程序
  2. 机器能否拥有像人类一样的意识?Science长文综述解读
  3. vs c# release断点调试
  4. linux 脚本select菜单,Shell:如何写一个多选菜单的脚本
  5. HTML 常用标签演示
  6. spring配置文件约束
  7. 设计模式之——桥接模式
  8. 把桌面路径移动到D盘的一种方法
  9. debian 7 调整控制台分辨率
  10. tolua++实现分析
  11. 新浪云服务器配置说明(java+mysql)
  12. ubuntu系统开机显示BusyBox v1.22.1(Ubuntu 1:1.22.0-15ubuntu1) built-in shell(ash) 问题的解决办法
  13. 融云 WICC:Unity、Beeto、荔枝、阿里云、StarMaker、LiveMe、积目…花城论剑
  14. canvas图片绘制-两张图片的叠加
  15. python animation 轨迹_Matplotlib animation模块实现动态图
  16. 朴素贝叶斯(Naive Bayes model)
  17. iphone导出视频 无法连接到设备_iPhone 如何将原始照片导出备份到电脑?
  18. 几种不为人熟知的搜索引擎作弊方法(转)
  19. md5模块和hashlib模块
  20. python本地音乐播放器+附源文件地址

热门文章

  1. Ubuntu+YOLOV3+安全帽检测
  2. C语言中实现字符串的压缩,并进一步优化
  3. 完全用Linux工作,摈弃Windows【转】
  4. fl studio中文版水果2020下载Keymaker-CORE.rar及使用常见问题教程
  5. 爬虫采集全国工商系统的数据(外接打码平台)
  6. 近红外干货 | NIRS_SPM单被试激活分析过程
  7. android 设置圆角边框下边没起作用,Android布局实现圆角边框效果
  8. word添加导航标题
  9. Aquila: A Practically Usable Verification System for Production-Scale Programmable Data Planes
  10. JS实现密码框小眼睛的显示与隐藏(使用字体图标)