在使用外部库时,我非常新手。这是我的问题:
我想在我的项目中使用这个库:stk 我下载了库并解压缩。然后我进入终端(Linux)解压缩目录并输入:
sudo ./configure
之后的类型:
sudo make
然后liblary应该可以使用了。
我通过添加库在Qt Creator中将库添加到我的项目中。我指向.a和头文件的路径。自动生成的.pro文件包含以下行:
unix|win32: LIBS += -L$$PWD/../../../../../Pulpit/stk-4.5.0/src/ -lstk
INCLUDEPATH += $$PWD/../../../../../Pulpit/stk-4.5.0/include
DEPENDPATH += $$PWD/../../../../../Pulpit/stk-4.5.0/include
win32:!win32-g++: PRE_TARGETDEPS += $$PWD/../../../../../Pulpit/stk-4.5.0/src/stk.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$PWD/../../../../../Pulpit/stk-4.5.0/src/libstk.a
好的,好的。到目前为止一切都有效。我从教程编写简单的代码,我得到了这个错误:
'MUTEX' does not name a type
MUTEX mutex_;
^
'CONDITION' does not name a type
CONDITION condition_;
^
我转到Mutex.h文件,我发现:
这段代码处于灰色背景中,表示条件未得到满足。 我猜在代码中没有定义 OS_LINUX 宏。什么时候可以生成这个宏?当我运行sudo ./configure?此外,如果我删除条件并仅留下:
#include <pthread.h>
typedef pthread_mutex_t MUTEX;
typedef pthread_cond_t CONDITION;
然后这个文件没有问题,但是在包含一些宏的其他文件中。
问题是:如何生成宏或为什么不生成?