我正在尝试编译一个简短的测试程序,该程序需要Qt4,但无法正确链接到Qt4库。我通过以下方式安装了Qt4
sudo 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: In function main': test.cpp:(.text+0xa): undefined reference toqVersion()‘collect2: error: ld returned 1 exit status
我在这里做错了什么?
谢谢
Ips
发布于 2017-06-02 04:12:31
编译器无法找到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.cpphttps://stackoverflow.com/questions/44315700
复制相似问题