我花了這個週末試圖弄清楚這一點,並且我正走在最後一步。我的目標是:讓visual studio 2010和Qt 4.7.3一起工作。Visual Studio 2010 Qt鏈接問題
我從源Qt安裝,以指定要建立具有以下配置:
configure.exe -debug和釋放-opensource -platform Win32的msvc2010 -no-webkit的-no聲子-no - 聲子-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg
配置完成後,我跑了nmake,沒問題。
在我的visual studio 2010解決方案中,我有兩個項目。 這是抱怨,它不能鏈接Qt庫。在公共屬性
AssetIO最初是使用Qt IDE構建的,我在Visual Studio中使用了Qt插件來導入項目。編譯項目AssetIO工作得很好。但是,編譯Short項目會導致以下鏈接器錯誤: 右鍵單擊Short項目,選擇屬性。我添加了AssetIO作爲參考。單擊該配置屬性,VC++目錄,我有以下的包括添加的目錄:
這裏是庫文件,我對項目: 而是然後發佈更多屏幕截圖,我包括目錄AssetIO項目是: C:\ qt_source \ 4.7.3 \包括
爲AssetIO項目我的圖書館目錄是: C:\ qt_source \ 4.7.3 \ BIN
下面是簡單的源代碼我正在努力工作的項目克(我簡單的測試項目)
main.cpp
int main(int argc, char* argv[])
{
AssetIO::LevelLoader a;
a.dostuff();
return 0;
}
LevelLoader.h
#ifndef LEVELLOADER_HPP
#define LEVELLOADER_HPP
namespace AssetIO
{
class LevelLoader {
public:
explicit LevelLoader();
~LevelLoader();
void dostuff();
};
}
#endif // LEVELLOADER_HPP
LevelLoader.cpp
#include "LevelLoader.hpp"
#include <QDomDocument>
#include <QFile>
#include <QDebug>
#include <QString>
using namespace AssetIO;
enum ComponentType { Drawable = 0, Position };
// This will definitely be changed, to return a full-blown component. Passing the tagname directly to the
// component factory.
ComponentType ConvertToComponentType(QString tagName)
{
if(tagName.toLower() == "Drawable") {
return Drawable;
}
else if(tagName.toLower() == "Position") {
return Position;
}
else {
// LOG
exit(EXIT_FAILURE);
}
}
LevelLoader::LevelLoader()
{
}
LevelLoader::~LevelLoader()
{
}
void LevelLoader::dostuff()
{
QDomDocument doc("la");
QFile file("../../../Resources/input.sto");
if(!file.open(QIODevice::ReadOnly)) {
// TODO: log this, something
exit(EXIT_FAILURE);
}
if(!doc.setContent(&file)) {
// TODO: log
file.close();
}
// we close the file now the doc has control (i think)
file.close();
// Read the root element
QDomElement root = doc.documentElement();
if(root.tagName() != "Root") {
// TODO: log
exit(EXIT_FAILURE);
}
// Read the Header Info
QDomNode headerNode = root.firstChild();
QDomElement e = headerNode.toElement();
if(e.tagName().toLower() != "HeaderInfo") {
// LOG
}
QDomNodeList componentNode = headerNode.childNodes();
int s = componentNode.count();
QString componentTag(componentNode.at(0).toElement().tagName());
QDomNamedNodeMap a = componentNode.at(0).attributes();
}
我想不出我在做什麼錯誤。有沒有人有任何想法?我到處尋找解決方案。
我通過使用命令參數運行qmake來實現它,你的意思是從命令行正確嗎?我打算使用Qt作爲編輯器,這非常好。我只是想在visual studio 2010中調試exe時能夠進入我的assetIO項目。 – Short