我正在尝试编译一个需要Qt4的简短测试程序,但是无法正确链接到Qt4库。我已经通过
安装了Qt4sudo apt-get install qt4-dev-tools
程序代码如下所示
#include <QtCore>
#include <iostream>
int main() {
std::cout << "Qt version: " << qVersion() << std::endl;
}
共享库libQtCore.so位于/ usr / lib / x86_64-linux-gnu但尝试按以下方式编译
g ++ -L / usr / lib / x86_64-linux-gnu -Wall -o test.exe test.cpp -lQtCore
返回一条错误消息,指出没有名为QtCore的文件或目录。
我也试过直接使用QtCore源代码,但收到了以下错误信息:
/tmp/ccljEHOY.o:在函数main':
test.cpp:(.text+0xa): undefined reference to
中qVersion()'
collect2:错误:ld返回1退出状态
我在这里做错了什么?
由于
Ips的
答案 0 :(得分:0)
编译器无法找到QtCore
文件,因为您需要将Qt路径添加到要搜索头文件的目录列表中。
您可以使用pkg-config
获取正确的标记:
$:pkg-config QtCore --cflags
-DQT_SHARED -I/usr/include/qt4 -I/usr/include/qt4/QtCore
用于链接:
$:pkg-config QtCore --libs
-lQtCore
调用编译器时可以使用pkg-config
:
g++ test.cpp `pkg-config QtCore --cflags --libs`
或
g++ `pkg-config QtCore --cflags` test.cpp `pkg-config QtCore --libs`
请注意,以下方式无法正常工作:
g++ `pkg-config QtCore --cflags --libs` test.cpp