【问题标题】:C++ program starts and hangs without errorC++程序启动并挂起没有错误
【发布时间】:2016-03-29 08:23:58
【问题描述】:

习惯了 IDE 牵着你的手,我被困住了,不知道从哪里开始寻找解决方案。我什至不知道这种类型的问题叫什么...... 该程序使用 Xcode 成功运行,但在 Raspberry Pi 上编译和运行时,它会成功编译并启动,但不会给出任何输出或错误。

我已尝试删除除标题和主要内容之外的所有内容:

std::cout << "Test" << std::endl;

仍然没有输出。 编译使用:

g++-4.7 -I 包含 -I 包含/接口 -I /usr/local/ssl/include -I /home/pi/gateway/mysql-connector-c++-1.1.5 -I /home/pi/gateway/mysql- connector-c++-1.1.5/cppconn -I /home/pi/gateway/mysql-connector-c++-1.1.5/driver -l mysqlcppconn -lwiringPi -lpthread -ldl -L/home/pi/gateway/live -std =c++11 -D PRODUCTION -o 网关 main.cpp src/*.cpp /usr/local/ssl/lib/libcrypto.a /usr/local/ssl/lib/libssl.a;

正在使用 3.6mb 的内存,但 CPU 使用率为 0%。

编辑: 幸运的是,我发现了这个问题,一个静态成员对象在其构造函数中包含一个等待回调,通过其中一个标头包含在内。问题仍然存在,从哪里开始进行故障排除?下次我宁愿不要靠运气!一次注释掉一个标头会导致各种错误,删除编译标志也是如此。我已经包含了使用上述标志成功编译的最少量代码。

#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <csignal>
#include <cstring>
#include <fstream>
#include "lightdevice.h"
#include "websocketserver.h"
#include "errorlog.h"
#include "debuglog.h"

int main (int argc, char *argv[])
{
    std::cout << "Why is this not printing?" << std::endl;
    return EXIT_SUCCESS;
}

【问题讨论】:

  • 我会依次尝试每个标题。
  • 你能完整发布你的实际代码吗?
  • @Cheersandhth.-Alf 尝试每一个是什么意思?怎么样?
  • @cat 不幸的是,代码库太大了...
  • 您以前编写过任何程序吗?如果不是从最简单的 Pi 的“hello world”示例开始,您可以先找到并让它工作。然后慢慢地把它变成你现在正在做的事情,直到它停止工作。

标签: c++ linux gcc terminal


【解决方案1】:

在调试器中运行时,可以检查这些线程。查看调用堆栈并找到正在创建的对象。

【讨论】:

  • 谢谢,现在我可以开始了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 2021-12-29
  • 1970-01-01
相关资源
最近更新 更多