我试图在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)
搜索缺少的依赖项我没有得到任何结果; 似乎找到了所有动态依赖关系,但上面的未定义符号错误仍然存在.
思考?
我将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文件.我究竟做错了什么?
我的问题是两部分:
mainWindow在运行main()的线程之外的线程中生成的?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) 我正在尝试在 OSX 上的 Qt Creator 中开发一个开源项目。当我像 Qt Creator 中的其他 CMake 项目一样打开 CMakeLists.txt 时,它不会打开该项目。Qt Creator 中没有文件夹、源文件,甚至 CMakeList.txt 都没有显示,只是一个完全空白的项目。
什么可能导致项目这样做?
编辑:项目在 Ubuntu 中正确打开。它显示了 CMakeLists.txt、源文件和所有内容。当我在 OSX 上的命令行中使用 CMake 时,它甚至可以正确构建。OSX 中的 Qt Creator 无法正确打开该项目。
Eit 2:我的构建设置也完全是空的。没有一般消息或任何类型的消息。
我已经成功使用 Qt4 一段时间了。我可以使用 CMake 命令,例如QT4_WRAP_CPP、QT4_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)
我如何
我正在执行一个简单的 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!请注意,我已经尝试过使用许多不同的端口,从4242到47806;未使用的随机端口。
为什么我的程序没有监听我定义的端口?