运行库时出现分段错误,但没有库时没有分段

问题描述

我有一个 C 库, 当我尝试编译创建该静态库时,一切正常。 当我创建一些调用该库的 C 文件时,一切仍然正常。 但是,当我调用特定函数时,它会出现分段错误

奇怪的是:

  • 如果我编译我的程序,包括库的所有文件并且没有静态库本身并且我运行它,即使调用函数它也能工作。

  • 当我运行完全相同的程序但使用 -lLibrary 调用库本身时,它会在该函数中给我一个错误,而 valgrind 对我说错误行是该函数本身的行(其中左括号是):

      Invalid read of size 4
    

所以要继续:

一切都按照它应该的方式初始化 -> 然后我调用那个函数 -> 如果用库编译出现错误(valgrind 说错误函数本身的开括号行),如果我用相同的包含在代码中但在命令行或代码中没有库 (-lLibrary) 的库文件 (#include ) 不会出现错误并且程序可以运行。

我用gcc编译

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)