Я пытался перенести функцию, написанную на Python/Pyside/Qt4.7.4, на C++, камнем преткновения является установка содержимого для QDomDocument. В Python 2.6 я могу сделать это:
doc = QtXml.QDomDocument("initData")
file = QtCore.QFile("initData.xml")
if not file.open(QtCore.QIODevice.ReadOnly):
exit()
if not doc.setContent(file):
file.close()
exit()
И все отлично (файл существует, может быть прочитан программой, проанализирован, и результирующим документом DOM можно манипулировать, как я и ожидал), но в C++ (используя Qt Creator 2.3.1, Qt 4.7.4, на OSX). Если я попытаюсь:
QFile *file = new QFile("/Users/UserName/Desktop/ProgramFolder/files/initData.xml");
file->open(QIODevice::ReadWrite|QIODevice::Text);
QDomDocument *doc = new QDomDocument;
doc->setContent(file);
Я получил:
Symbols not found
file not found
Collect2 - Id returned exit 1 status
file not found
Когда я удаляю третью и четвертую строки и заменяю их оператором отладки isOpen, я получаю подтверждение, что файл существует и что Qt может его прочитать. Есть ли у кого-нибудь идеи, которые я могу использовать для отладки этого?