为什么Qt Creator找到typedef,而不是构建过程
Why does Qt Creator find the typedef, but not the build process?
我正在尝试在我的Qt Creator项目中使用外部库。我正在使用Windows上的Visual C++构建它。
我把它添加到我的qmake文件中:
# Include libspotify
INCLUDEPATH += C:\libspotify\include
LIBS += -LC:\libspotify\lib -llibspotify
然后我去使用库中的一些 typedef'd 结构:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <libspotify/api.h>
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
sp_session_config spConfig;
sp_session spSession;
};
#endif // MAINWINDOW_H
现在,在 IDE 编辑器中,语法突出显示将 sp_session_config 和 sp_session 标记为紫色,表示编辑器可以找到这些 typedef(如果找不到定义,则会将文本保留为黑色)。
但是当我构建时,我得到这个:
mainwindow.h:32: error: C2079: 'MainWindow::spSession' uses undefined struct 'sp_session'
现在我知道编译器正在查找 api.h 文件,因为如果我将其更改为虚假文件名,它会吐出一个找不到文件的错误。
我做错了什么?
编辑:头文件定义结构如下:
extern "C" {
typedef struct sp_session sp_session; ///< Representation of a session
}
您有一个要struct sp_session
的 typedef 声明struct sp_session
但它是一个不完整的类型。 为了使QMainWindow
类具有sp_session
成员,类型必须是完整的(即,您需要一个声明,该声明还定义了struct sp_session
具有的成员)。
如果无法做到这一点,您可以重组内容,以便class QMainWindow
拥有sp_struct*
或sp_struct&
作为成员。
原来
我其实是想sp_session * spSession
!
相关文章:
- 下一个云桌面客户端构建过程
- cmake在构建过程中使用另一个工具检测标志
- 尝试在 AIX 6.1 上创建构建过程
- C++构建过程 - lib 依赖项
- 在构建过程中捕获所有编译器调用和命令行参数
- MSVC2013:如何避免在错误地使用预构建脚本中止构建过程(错误MSB3073:VCEnd"退出,代码为 -1)
- 如何在节点GYP构建过程中包括Tesseract库
- 如何使用CMAKE在项目构建过程中构建SDL2
- 找不到构造函数 - 如何将 CPP 文件添加到 Qt 构建过程
- 在Docker构建过程中安装C 软件包
- 在构建过程中更改Boost库的路径
- 为什么Qt Creator找到typedef,而不是构建过程
- 应用程序停滞在构建/运行过程中
- Emacs在Windows7上构建过程
- C++构建过程
- 在构建过程中捕获特定基础成员的异常
- 在构建过程中构建第三方库
- Ros安装在构建过程中卡住
- Visual Studio -如何自动化构建过程
- 在一行中定义多个变量,这能为构建过程提供任何优化吗?