c – 如何找到程序的主要(…)功能?

我目前正在将一个带有几百个代码文件和依赖项的项目移植到几个第三方库到Mac Os.我终于达到了程序在没有警告或错误的情况下编译的程度,但它似乎没有执行我自己的主函数.

相反,它似乎执行一些似乎属于第三方的其他主要功能.此函数将一些诊断外观数据写入控制台,然后退出

(gdb) continue
Current language:  auto; currently c++
//
// This is an automatically generated file.
// Do not edit.
//

const unsigned short expTable[] =
{
    0x3c00,0x3c00,...
    0x3c00,};

Debugger stopped.
Program exited with status value:0.

我无法使用调试器找出此主函数所在的位置,因为虽然堆栈跟踪似乎有效,但gdb没有显示每个堆栈条目的正确行号和文件名(有关详细信息,请参阅this unsolved question).

搜索需要几分钟才能完成,但没有返回任何结果.

我的项目在其他库中使用SDL,但我获得了SDL_Main()和潜在的问题,并在一个完美的工作SDL项目模板之上构建了我的项目.所以我很确定我自己的主要功能是有效的.

你知道可能出了什么问题吗?我目前没有关于如何查找和删除流氓主要功能的想法.

谢谢,

阿德里安

编辑:正如我刚刚发现的那样,我在使用字符串“这是一个自动生成的”搜索文件时犯了一个错误.我刚刚发现了几十个具有相同字符串的文件,都属于FreeImage,我正在使用的第三方库之一.所以,问题似乎与FreeImage有关,但我仍然不确定如何继续,因为我已经将Freeimage编译为带有封闭的MacOs makefile的库,并且仅包含库.我将尝试重建一个较新版本的FreeImage并查看它是否解决了我的问题.

解决方法

它可能是在调用main()之前失败的静态对象的初始值设定项吗?

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...