Pasé el fin de semana tratando de resolver esto y estoy en el último paso. Mi objetivo: lograr que visual studio 2010 y Qt 4.7.3 trabajen juntos.Visual Studio 2010 Qt Enlace Problema
I instalado Qt de la fuente, especificando para construir con la siguiente configuración:
configure.exe y liberación -debug -opensource -platform win32-msvc2010 -no-webkit -no-fonón -no-fonón -backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg
Después de la configuración, ejecuté nmake, sin problemas.
En mi solución visual studio 2010, tengo dos proyectos. Se queja de que no puede vincular las bibliotecas de Qt. En las propiedades comunes
AssetIO se construyó originalmente utilizando el Qt IDE, y utilicé el complemento Qt en el estudio visual para importar el proyecto. Compilando el proyecto AssetIO funciona perfectamente bien. Sin embargo, al compilar los resultados del proyecto Corto en los siguientes errores del enlazador: Haga clic con el botón derecho en el proyecto Corto, seleccione propiedades. Agregué AssetIO como referencia. Al hacer clic en las propiedades de configuración, Directorios de VC++, tengo los siguientes directorios de inclusión añadido:
Éstos son los archivos de la biblioteca que tengo para el proyecto:
En lugar de publicar más fotografías en pantalla, Mi incluir directorios para el AssetIO proyecto es: C: \ qt_source \ 4.7.3 \ incluyen
mi directorio de la biblioteca para el proyecto AssetIO es: C: \ qt_source \ 4.7.3 \ bin
Aquí está el código fuente simple de el proyecto que estoy tratando de obtener trabajando g (mi proyecto de prueba sencilla)
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();
}
No puedo imaginar lo que estoy haciendo incorrectamente. ¿Alguien tiene alguna idea? He buscado una solución en todas partes.
Lo tengo que trabajar, ejecutando qmake con argumentos de comando, ¿quiere decir desde la línea de comando correcta? Planeo usar Qt como editor, es muy bueno. Solo quería poder ingresar a mi proyecto assetIO cuando estaba depurando el exe en Visual Studio 2010. – Short