小编Dan*_*ett的帖子

符号查找错误:./ executableName:未定义符号:_ZN18QXmlDefaultHandlerC2Ev

我试图在Linux Mint 16 x64上运行可执行文件,这是为Ubuntu 12 x64编译的.可执行文件在运行时动态使用Qt 5.1.1.我收到错误:

loaded the dummy plugin 
loaded the Linux plugin 
updating server status 
./executableName: symbol lookup error: ./executableName: undefined symbol: _ZN18QXmlDefaultHandlerC2Ev
Run Code Online (Sandbox Code Playgroud)

我跑的时候

ldd executableName | grep "not found"
Run Code Online (Sandbox Code Playgroud)

搜索缺少的依赖项我没有得到任何结果; 似乎找到了所有动态依赖关系,但上面的未定义符号错误仍然存​​在.

思考?

linux linker qt shared-libraries symbol-table

9
推荐指数
1
解决办法
2万
查看次数

Qt使用CMake:ui_mainwindow.h:没有这样的文件或目录

我将Qt与CMake一起使用,因为CMake比我自己的团队工作更容易.我经常遇到一个错误

ui_*.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

通常,当我的项目已经有一个ui_*.h文件开始时,它只会修改该.h文件.我在我的CMake文件中使用下面的命令,所以它应该.ui用适当的ui_*.h文件包装我的文件.

qt4_wrap_ui (mainwindow  mainwindow.ui)
target_linked_library (mainwindow ${QT_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)

但有时这不起作用,我必须完全重建整个ui_*.h文件.我究竟做错了什么?

qt qt-creator moc

4
推荐指数
1
解决办法
9027
查看次数

创建没有父级的新Qt窗口是否也会创建新线程?

我的问题是两部分:

  1. mainWindow在运行main()的线程之外的线程中生成的?
  2. mainWindow当main()返回时,如何不立即超出范围?

在下面的示例中,创建一个窗口,显示,并且main几乎立即返回.

main.cpp中

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}
Run Code Online (Sandbox Code Playgroud)

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H …
Run Code Online (Sandbox Code Playgroud)

c++ qt qthread

3
推荐指数
1
解决办法
196
查看次数

Qt Creator 无法在 OSX 中打开 CMake C++ 项目

我正在尝试在 OSX 上的 Qt Creator 中开发一个开源项目。当我像 Qt Creator 中的其他 CMake 项目一样打开 CMakeLists.txt 时,它不会打开该项目。Qt Creator 中没有文件夹、源文件,甚至 CMakeList.txt 都没有显示,只是一个完全空白的项目。

空的 Qt Creator 窗口甚至不显示 CMakeLists.txt。

什么可能导致项目这样做?

编辑:项目在 Ubuntu 中正确打开。它显示了 CMakeLists.txt、源文件和所有内容。当我在 OSX 上的命令行中使用 CMake 时,它​​甚至可以正确构建。OSX 中的 Qt Creator 无法正确打开该项目。

Eit 2:我的构建设置也完全是空的。没有一般消息或任何类型的消息。

在此输入图像描述

qt cmake qt-creator

3
推荐指数
1
解决办法
3202
查看次数

CMake 如何知道要使用哪个版本的 Qt?

我已经成功使用 Qt4 一段时间了。我可以使用 CMake 命令,例如QT4_WRAP_CPPQT4_WRAP_UI等。现在我已经安装了 Qt5,但由于某种原因 Qt 无法识别我的安装。我收到此错误。

CMake Error at /example/project/dir/build_target.cmake:102 (QT5_WRAP_CPP):
  Unknown CMake command "QT5_WRAP_CPP".
Run Code Online (Sandbox Code Playgroud)

我如何

  • 检查 CMake 找到了哪些版本的 Qt?
  • 指定 CMake 应使用的 Qt 版本?
  • 确保Qt安装正确?

qt cmake

2
推荐指数
1
解决办法
1783
查看次数

Python 没有监听我指定的任何端口

我正在执行一个简单的 Python 套接字教程。我使用初始化套接字

import socket
import sys
# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Bind the socket to the port
server = socket.gethostname()
port = 8080
server_address = (server,port)
sock.listen(1)
Run Code Online (Sandbox Code Playgroud)

但是当我检查我的 Ubuntu 机器正在侦听的端口时,netstat -ntulp我得到了

...
tcp    0   0 0.0.0.0:49064     0.0.0.0:*        LISTEN   12505/python 
...
Run Code Online (Sandbox Code Playgroud)

它正在监听端口49604而不是端口8080!请注意,我已经尝试过使用许多不同的端口,从424247806;未使用的随机端口。

为什么我的程序没有监听我定义的端口?

python sockets port server

1
推荐指数
1
解决办法
3691
查看次数

标签 统计

qt ×5

cmake ×2

qt-creator ×2

c++ ×1

linker ×1

linux ×1

moc ×1

port ×1

python ×1

qthread ×1

server ×1

shared-libraries ×1

sockets ×1

symbol-table ×1