私はqtを使用して、win xp/vistaで動作するデスクトップアプリケーションを開発しています。qtサードパーティのヘッダとライブラリのパスを追加する
私はサードパーティのライブラリUserAgentLib(静的、共有)を持っています。しかし、私はQtの作成者でリンクする方法がわかりません。
* .proファイルを開いて、ライブラリとヘッダパスを追加しました。 ライブラリがUserAgentLibと呼ばれ、ヘッダファイルがUserAgentLib.h
TARGET = Dialer
TEMPLATE = app
LIBS += D:\Projects\qtDialer\tools\lib\UserAgentLib
INCLUDEPATH += D:\Projects\qtDialer\tools\inc
SOURCES += main.cpp\
catdialer.cpp
HEADERS += catdialer.h
FORMS += catdialer.ui
私はUserAgentLib.hファイル内の宣言のために約100エラーが出るようには、ヘッダファイルを見つけるんだと思うと呼ばれています。しかし、私はそれが図書館にリンクしているとは思わない。任意の提案のための
多くのおかげで、
======================
私はVS Cに非常に単純なライブラリを作成している++ヘッダーとソースファイルのコードは次のとおりです。 ヘッダー:
// mathslibrary.hpp
int add_numbers(const int a, const int b);
出典:
// mathslibrary.cpp
#include "mathslibrary.hpp"
int add_numbers(const int a, const int b)
{
return a + b;
}
私は図書館にこれをコンパイルしています。 VS 2008でWIN32コンソールアプリケーションとリンクしてテストしました。ライブラリは期待どおりに動作しました。
ここで私はqtと接続しようとします。
#include <QtCore/QCoreApplication>
#include <iostream>
#include "mathslibrary.hpp"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
std::cout << "add numbers 40 + 60 = " << add_numbers(40, 60) << std::endl;
return a.exec();
}
これは私のqmakeのファイルです:
QT -= gui
TARGET = testlibrary
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
LIBS = D:\Projects\TestLibrary\mathsLibrary\Debug\mathsLibrary.lib
INCLUDEPATH = D:\Projects\TestLibrary\mathsLibrary\
SOURCES += main.cpp
これらは私が試してみて、ビルド時に私が取得エラーです:
C:/ QT/mingwの/ binに/../ libに/ gcc/mingw32/3.4.5 /../../../ libmingw32.a(main.o):main.c :: - 1:エラー: `WinMain @ 16 'への未定義参照
: - 1:エラー:collect2:ldが1の終了ステータスを返しました
... qmakeのステップをスキップしてそのまま設定、プロジェクトtestlibraryのための手順を構築実行
... gdbのマクロライブラリを作成
:
そして、これらは、コンパイルの問題です。
開始:C:/Qt/mingw/bin/mingw32-make.exeデバッグ-w
MINGW32-メイク:ディレクトリ `D:/プロジェクト/ TestQTLibrary/testlibrary」
C:/ QT/mingwの/ binに/ MINGW32-する-f Makefile.Debug MINGW32-する[1]:入力ディレクトリ `D:-enable /プロジェクト/ TestQTLibrary/testlibrary」
グラム++ -enable-STDCALL・フィックスアップ-Wl、 -auto-import -Wl、-enable-runtime-pseudo-reloc -Wl、-subsystem、console -mthreads -Wl -o debug \ testlibrary。exeファイル-L "C:\ Qtの\ qtの\ libに"
D:プロジェクト\ TestLibrary \ mathsLibrary \デバッグ\ mathsLibrary.lib -lQtCored4 MINGW32-作る\ [1]:残しディレクトリ `D:/プロジェクト/ TestQTLibrary/testlibrary '
MINGW32-メイク:ディレクトリを残す `D:/プロジェクト/ TestQTLibrary/testlibrary'
C:/ QT/mingwの/ binに/../ libに/ gccを/ MINGW32/3.4.5 /。 ./../../libmingw32.a(main.o):main.c:
(の.text + 0x104): `16' collect2は@ WINMAINに未定義参照:LDは1終了ステータス MINGW32を返さ-mak E [1]:* [デバッグの\ testlibrary.exe]エラー1 MINGW32-メイク:* [デバッグ]エラー
'を作る' ステップを構築し実行すると、プロジェクトのtestlibrary を構築しながら、コード2 エラーで終了しました2アドバイスありがとうございました
こんにちは、私は、コンストラクタにコードを入力しました。ただし、コンパイルエラーのためにプログラムは実行されません。多分私の図書館。ライブラリはVS 2005でコンパイルされました。 – ant2009