如何根据编译器设置安装目录?

时间:2018-03-16 13:04:45

标签: qt qmake

我非常简单的package com.lms.service; import lotus.domino.NotesException; import lotus.domino.Session; import lotus.domino.NotesFactory; public class StarService { public static Session notesSession = null; public static Session getNotesSession() { if( notesSession == null ) try { notesSession = NotesFactory.createSession( "testHostServer", "testUser", "testPassword" ); } catch ( NotesException e ) { e.printStackTrace(); } return notesSession; } public StarService() throws NotesException { System.out.println( "Begin StarService Constructor" ); // Setup the notes connectivity getNotesSession(); System.out.print( getNotesSession().getUserName() ); System.out.println( "End STARService Constructor" ); } } 文件如下所示:

X.pro

标题文件TEMPLATE = lib CONFIG += c++14 warn_on HEADERS += x.hpp target_headers.path = $$[QT_SYSROOT]/usr/include/ target_headers.files = x.hpp INSTALLS += target_headers target_libs.path = $$[QT_SYSROOT]/usr/lib/ target_libs.files = libX.so \ libX.so.1 \ libX.so.1.0 \ libX.so.1.0.0 target_libs.CONFIG += no_check_exist INSTALLS += target_libs 可以留空。

所以,当我做的时候

x.hpp

标头安装在qmake make make install 中的/usr/include/库中。

当我使用32位编译器时这很好用,因为这些库应该安装在/usr/lib/中,但是当我使用64位编译器时它不行,因为库应该转到{ {1}}。

那么,如何更改专业文件,配置我的库所在的位置?有没有办法检测构建是使用32位还是64位编译器?

此外,这将创建4个库副本,而不是复制链接。如何解决?

1 个答案:

答案 0 :(得分:1)

检测架构:https://stackoverflow.com/a/30723860/1179842

contains(QT_ARCH, i386) {
    message("32-bit")
} else {
    message("64-bit")
}

创建链接:让qmake为您生成命令:http://doc.qt.io/qt-5/qmake-advanced-usage.html#installing-files

target.path = $$[QT_SYSROOT]/usr/lib/
INSTALLS += target