Hafta sonu bunu anlamaya çalışırken son adımı attım. Amacım: birlikte çalışmak için görsel stüdyo 2010 ve Qt 4.7.3 almak.Visual Studio 2010 Qt Bağlantı Sorunu
configure.exe -debug-ve-bırakma -opensource -platform Win32-msvc2010 -no-webkit -No-fonon -No-fonon:
aşağıdaki yapılandırma ile oluşturmak için belirten bir kaynaktan Qt yüklü -back -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcgYapılandırmadan sonra nmake, problem yaşamadım.
Görsel stüdyo 2010 çözümümde iki projem var. Qt kitaplıklarını bağlayamadığından şikayetçi. Ortak özellikler
AssetIO özgün olarak Qt IDE kullanılarak oluşturuldu ve ben Visual Studio içinde Qt eklentisini kullanarak projeyi içeri aktardım. AssetIO projesini derlemek gayet iyi çalışıyor. Ancak, kısa projenin derlenmesi aşağıdaki linker hatalarının sonucudur: Kısa projeye sağ tıklayın, özellikleri seçin. AssetIO’yu referans olarak ekledim. İşte
Ben proje için var kütüphane dosyalarıdır: Ben şu var Yapılandırma özelliklerine tıklandığında, VC++ Dizinler dizinleri eklendi Dahil Ziyade için dizinleri dahil Gözat daha ekran görüntüleri yayınlamak AssetIO projedir: C: \ qt_source \ 4.7.3 \ dahil
AssetIO projesi için benim kütüphane dizinidir: C : \ 4.7.3 \ bin Burada
\ basit kaynak kodu qt_source Projeyi yapmaya çalışıyorum g (benim basit bir test projesi)
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();
}
ben yanlış yapıyorum bilemiyorum. Herhangi bir fikri olan var mı? Çözüm için her yere baktım.
Çalışmaya çalıştım, komut argümanlarıyla qmake'yi çalıştırarak komut satırından mı kastediyorsunuz? Qt'yi bir editör olarak kullanmayı planlıyorum, çok güzel. Görsel stüdyo 2010'da exe hatalarını ayıklarken sadece varlıklı projeme adım atmak istedim. – Short