Visual Studios (несколько проектов) Ошибка связывания
Я работаю с Qt и Cryengine в визуальных студиях. Я очень плохо знаком с крупными проектами, такими как этот, но я почти на грани добавления чего-то в этот движок. Мой код компилируется по частям, но когда я пытаюсь скомпилировать свой проект "Инди-игра", я получаю ссылки на ошибки, которые после исследования я все еще не знаю, как их решить. Я знаю, что ошибки относятся к моему коду InventoryGUI, потому что когда я удаляю этот файл, проект компилируется без ошибок компоновки.
Это мой код InventoryGUI и ошибка, которая отображается при попытке собрать инди-игру http://imgur.com/hzmGdvH
Это заголовочный файл, который он включает. http://imgur.com/o22GHXg
Я ценю любую помощь, которую вы, ребята, можете оказать в этом. Конечно, если вам нужно увидеть разные части моего кода, дайте мне знать, и я также опубликую его.
Спасибо
Изменить: Забыл добавить, что функция "createInventory()" вызывает функцию InventoryGUI из другого проекта. Я считаю, что переход между проектами, скорее всего, является причиной ошибок.
1 ответ
Если InventoryGUI
Класс определяется в разделяемой библиотеке ("dll") и используется в исполняемом файле, затем вы должны экспортировать его символы (в сборке Windows). так что попробуйте что-то вроде:
#ifdef WIN32
# ifdef MY_LIB_EXPORTS
# define MY_LIB_DLL __declspec(dllexport)
# else
# define MY_LIB_DLL __declspec(dllimport)
# endif
#else
# define MY_LIB_DLL
#endif
class MY_LIB_DLL InventoryGUI
{
...
};
Затем библиотека, определяющая InventoryGUI
должен был определить MY_LIB_EXPORTS
, Например, если вы используете систему Pro Files, это будет выглядеть так
DEFINES += MY_LIB_EXPORTS
Других проектов не должно. Проверьте, есть ли подобный механизм для других классов библиотеки.