遇到的debug整理20190107

2023-11-05

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

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,只不过由于以前很多代码都有这种习惯,为了兼容,就保留下来了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

遇到的debug整理20190107 的相关文章

  • 如何在Python中使用tcp套接字发送和接收网络摄像头流?

    我正在尝试重新创建这个项目 https github com hamuchiwa AutoRCCar 我拥有的是服务器 我的电脑 和客户端 我的树莓派 我所做的与原始项目不同的是我尝试使用一个简单的网络摄像头而不是树莓派摄像头将图像从我的
  • Python requests_toolbelt MultipartEncoder 文件名

    使用 requests toolbelt 以多部分形式上传大文件 我构建了一个方法 可以成功上传文件 但是我无法访问发布的文件名 如何访问服务器上的文件名 client side file open Volumes Extra test m
  • lxml 中的通配符命名空间

    如何使用 xpath 忽略 xml 命名空间进行查询 我正在使用 python lxml 库 我尝试了以下解决方案this https stackoverflow com questions 13463871 xpath selecting
  • Python:合并嵌套列表

    初学者在这里 我有 2 个要合并的嵌套列表 list1 a b c d e f g h list2 p q r s t u v w 我正在寻找的输出是 list3 a p q b c r s d e t f g h u v w 这可以在没有
  • 在 Kivy 应用程序中获取文本输入值

    Python Kivy 新手尝试构建一个测试应用程序 其中包含输入框 确定按钮和单击确定按钮时应更改文本的标签 但我得到了 NameError 全局名称 txt1 未定义 我究竟做错了什么 import Kivy import kivy i
  • 无法从同一项目的 bin 目录导入模块

    我正在构建一个库 该库将通过 pip 包含在其他项目中 我有以下目录 venv 是 virtualenv project bin run py myproj init py logger py venv 我激活虚拟环境 在 bin run
  • Bokeh 相当于 matplotlib 子图

    我正在寻找一种方法来创建包含多个子图的绘图 例如 fig ax0 ax1 plt subplots nrows 2 sharex True 可以在 matplotlib 中完成 然后可以通过以下方式解决ax0 and ax1 有没有办法在
  • Python - 重写 print()

    我正在使用 mod wsgi 想知道是否可以覆盖 print 命令 因为它没用 这样做是行不通的 print myPrintFunction 因为这是一个语法错误 Print 不是 Python 2 x 中的函数 因此这不能直接实现 但是
  • 在heroku实例上安装PIL

    我创建了一个python flask托管在heroku上的应用程序 我很有趣PILpython 中的图像库 我无法安装PIL在heroku实例中 我尝试过以下几种方法 方法一 Added PIL 1 1 7 in requirements
  • 读取 JSON 文件并将其漂亮打印到另一个文件

    我有一个复杂 嵌套 的 json 文本文件 它是文本文件中的一长行 有什么方法可以读取文件 在 python 中 并将 json 缩进 漂亮地打印到新的文本文件中吗 使用读取文件json load 并使用json dump 在指定缩进值时将
  • Pandas 无法读取使用 h5py 创建的 hdf5 文件

    当我尝试读取使用 h5py 创建的 HDF5 格式文件时 出现 pandas 错误 我想知道我是否只是做错了什么 import h5py import numpy as np import pandas as pd h5 file h5py
  • Python 2to3 Windows CMD

    我已经安装了 python 32 包到 C python32 我还设置了路径 Python 路径 C Python32 Lib C Python32 DLLs C Python32 Lib lib tk 路径 C Python32 我想使用
  • 如何以编程方式关闭wx.DirDialog?

    我有 wxpython 应用程序 可以在单击按钮时打开 wx DirDialog dlg wx DirDialog self Choose a directory style wx DD DEFAULT STYLE if dlg ShowM
  • 当有效的 django 表单保存在数据库中时如何触发自定义 python 代码

    Django 新手 我创建了一个简单的表单如下this https www youtube com watch v 3XOS UpJirU教程 我的表单正确地将数据保存在我的 Postgres 连接的本地数据库中 我想知道 每当将有效表单保
  • Django 1.7.1 需要字段的默认值 - 但数据库中没有条目。为什么?

    我遇到了一个奇怪的问题 我在 Mac OS X Yosemite 上使用 Django 1 7 1 并且配置了本地 MySQL 数据库 通常 我创建一个模型 如果我想添加另一个字段 我只需做一个 manage py migrateDjang
  • 如何在 Django 中创建多选框?

    我正在尝试创建多选框字段来自姜戈选择 2 https github com applegrew django select2库如下图所示 我使用了下一个代码 但它返回简单的选择多个小部件 我想我忘了补充一些东西 我的错误在哪里 有人可以告诉
  • 将 csv 写入谷歌云存储

    我试图了解如何将多行 csv 文件写入谷歌云存储 我只是没有遵循文档 https googlecloudplatform github io google cloud python stable storage blobs html hig
  • matplotlib 轴标签偏移量的因素和变化

    在 matplotlib 中的轴刻度标签上 有两种可能的偏移量 factors and shifts 在右下角 1e 8 是一个 因子 1 441249698e1 是一个 移位 这里有很多答案展示了如何操纵两个都 matplotlib 将轴
  • 使用 PyODBC 选择表中的列名

    我正在编写一个 Python 程序 该程序使用 PyODBC 从 Microsoft Access mdb 文件中选择一些数据 我需要发现几个不同表的列名 在 SQL Server 中 这可以通过使用类似的查询来完成 SELECT c na
  • 无法比较类型“ndarray(dtype=int64)”和“str”

    Example of data that I want to replace 数据具有以下属性 购买 V 高 高 中 低 维持 V 高 高 中 低 门 2 3 4 5 更多 2 4人以上 lug boot 小 中 大 安全性低 中高 这就是

随机推荐

  • 吃透Chisel语言.09.Chisel项目构建、运行和测试(一)——用sbt构建Chisel项目并运行

    Chisel项目构建 运行和测试 一 用sbt构建Chisel项目并运行 上一大部分介绍了Chisel的基础语法 但除了教程开始的Demo以外 我们还没有开始写Chisel代码 这对于学习编程语言来说是大忌 不过好在Chisel基础语法部分
  • 使用微 PE(U盘)安装 Windows 10 操作系统

    1 下载微PE安装包 官方下载链接 http www wepe com cn download html现在官方需要乐捐才能下载 有条件的同学可以适当的支持一下作者 2 制作PE启动盘 软件下载完成后 就可以开始制作WinPE了 需要注意的
  • 谁在成为产业经济发展的推车人?

    区域发展的新蓝图中 京东云能做什么 它的角色是什么 这个问题背后 隐藏的不仅是京东云自身的能力和价值 更是其作为中国互联网云厂商的代表之一 对 技术 产业 的新论证 作者 皮爷 出品 产业家 关于云厂商 外界更多的认知是在技术和产品层面 不
  • Vulkan Windows VS2022 开发环境配置

    1 确保编译器支持C 17 所以需要Visual Studio 2017及其以上版本 我这里用的是2022 确保环境安装了CMake CMake gui 可选装 2 下载Vulkan SDK 到 https vulkan lunarg co
  • Open3d读写pcd点云文件

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 python三维点云从基础到深度学习 系列文章 地址为 https blog csdn net suiyingy article details 124017716 1 Open3d 安
  • 计算机ip 地址异常,电脑显示IP地址错误怎么办

    有用户和小编反映 电脑无法上网 经过诊断后显示是IP地址错误的原因 如果我们遇到了这样的错误应该怎么办 所以 在下面的内容中 小编要和大家介绍在电脑提示IP地址错误无法上网的具体解决方法 win8 1 14 首先确定是否禁用了本地连接 如果
  • 线索二叉树

    线索二叉树 线索二叉树的概念 1 线索 线索是一种对二叉树的操作 意思是对二叉树进行线索化 其目的是使线索化后的二叉树具有方便被遍历的特点 即不使用递归和栈也可以对线索化之后的树进行中序遍历 2 基于中序遍历的线索二叉树 中序遍历 即先遍历
  • json 数组读取排序问题

    今天遇到一个依赖健值数组读取排序的问题 接口开发同事返回的json格式是这样的 我在小程序调用接口读取数组遍历之后发现排序乱了 price info 08 01 price 9999 booked 0 02 price 99999 book
  • 硬件施工的特点

    硬件施工有别于软件施工 施工管理方法存在差异 相比软件施工 硬件施工的特点 1 硬件施工通常需要垫资 2 设备安全 施工安全要小心 包括失窃 丢失 意外损失等 3 生产供货 物流周期属于强限制 4 品牌型号需明确 变更需要走正式流程 手续不
  • C基础(五)作用域和内存管理

    目录 一 作用域 1 1 作用域和生命周期 二 内存区域划分 三 堆内存的分配和释放 3 1 malloc分配堆内存 3 2 free释放堆内存 3 3 思考 解决函数返回值是指针的问题 方案一 返回一个在堆内存分配的地址指针变量 方案二
  • Java中this关键字

    含义 this关键字指代当前对象 本质就是 创建好的对象的地址 当一个对象创建后 Java虚拟机就会给对象分配一个内存空间和一个引用自身的指针 这个指针的名字就是this 用法 1 访问类中的成员变量 用来区分成员变量和局部变量 publi
  • 关于JDBC中properties默认编码格式为ISO-8859-1导致使用资源绑定器的getString方法出现乱码的解决办法

    在JDBC的注册驱动与连接数据库方面 通常将driver url user password来放入配置文件中 并使用资源绑定器ResourceBundle来更快捷灵活地进行编程 而资源绑定器的实例方法getString key 如果传入的k
  • 区块链相关

    区块链 一个个区块组成的链表 一 密码学原理 哈希碰撞 x不等于y 但是H x H y 不同的输入 输出却一致 这就称为 哈希碰撞 collision resistance puzzle friendly 不能预测输入最终的输出结果 hid
  • Unity 鼠标控制物体的移动

    一 鼠标控制物体移动 using System Collections using System Collections Generic using UnityEngine public class ControlMove MonoBeha
  • 试用74LS161和必要的门电路实现11进制计数器(要求用同步置数法实现)

    题目要求实现11进制计数器 则电路共有11个有效状态 我们可以选择0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010这11个状态作为电路的有效状态 按照上述状态选择方式 应向下图示接
  • 【 PMU】信号生成、采样、分割、估计器应用和误差计算(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 PMU 信号生成 采样 分割 估计器应用和
  • 一个简单的虹膜定位程序

    一个简单的虹膜定位实现 虹膜定位程序 clear close all I imread ip1 jpg f rgb2gray I imhist f 求图像的直方图 F Size M F Size N size f 获取f的行和列 T 84
  • Java驱动方式JDBC连接SQL Server

    Java驱动方式JDBC连接SQL Server 第一步 下载微软官方的SQL Server JDBC 驱动程序 6 0 https www microsoft com zh CN download details aspx id 1177
  • 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性

    设顺序表va中的数据元素递增有序 试写一算法 将x插入到顺序表的适当位置上 以保持该表的有序性 先建立一个待插入的结点 然后依次与与链表中的各结点的数据域比较大小 找到插入该结点的位置 最后插入该结点 算法如下 include
  • 遇到的debug整理20190107

    已解决 最后的链结失败 错误的值 RT0 o relocation R X86 64 PC32 against symbol phgTetFaceVertexi can not be used when making a shared ob