2016-12-16 4 views
0

Я хочу скомпилировать проект с Qt в Visual Studio 2010. Я создал все необходимые библиотеки и связал их в свойствах проекта.Ошибка LNK2019 в qInitResources() - RCC

Я также сделал файл .cpp из файла project.qrc (RCC) с командой ниже:

rcc project.qrc -name project -o qrc_project.cpp 

следовали инструкциям из http://www.qtcentre.org/archive/index.php/t-3425.html.

Файл project.coo производится со следующими строками:

int QT_MANGLE_NAMESPACE(qInitResources_project)() 
{ 
    QT_PREPEND_NAMESPACE(qRegisterResourceData) 
     (0x01, qt_resource_struct, qt_resource_name, qt_resource_data); 
    return 1; 
} 

Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qInitResources_project)) 

Я также включил файл .cpp в проекте. Хотя, я получаю ошибку ниже:

Ошибка 2611 ошибка LNK2019: неразрешенный внешний символ "INT __cdecl qInitResources_project (аннулируются)" (qInitResources_project @@ YAHXZ?) ссылки в функции главного D: \ USR \ Windows \ main.obj project

Я сделал что-то не так с rcc? Может ли кто-нибудь помочь?

+0

Является ли 'qrc_project.cpp' частью вашего проекта? Возможно, его не собирают. – drescherjm

+0

@drescherjm Да, я включил его в свой проект. Должен ли я скомпилировать его отдельно? –

ответ

0

Я решил свою проблему, создав файл .rcc и .cpp файл как с именем проекта, так и с «qrc_» в начале его. Я также связал оба файла с моим проектом.

Похоже, что компилятор не смог найти нужный файл, поэтому у меня была ошибка связывания.

Команды, которые я использовал для того, чтобы произвести файлы, упомянутые выше, являются:

  1. rcc -binary <path_to_qrc_file>.qrc -o <path_and_filename>.rcc

  2. rcc <path_to_qrc_file>.qrc -name <project_name> -o <path_and_filename>.cpp

+0

Привет, вы можете сказать мне, как изменить его в VS? Я встретил ту же проблему ... THX! – alanwsx

+0

Я имею в виду второй шаг: «Я также связал оба файла с моим проектом» – alanwsx

0

Я нашел очень тривиальный обходной путь, если ничего на SO работает для вас:

В VS вы можете просто поместить свой ресурс (изображения или значки) не в файл qrc библиотеки, а непосредственно в файл qrc основного проекта. Затем в проекте библиотеки вы можете ссылаться на изображения, используя путь в основном проекте, и даже не нужно вызывать QT_INIT_RESOURCE.

Я думаю, что это не очень хорошая практика, но просто отметьте, кто бы ни попробовал все решения онлайн и все еще не работал.