Неклассовый метод в Qt (с qtcreator) неразрешенный внешний символ

У меня есть приложение, которое было собрано без проблем в Linux, сейчас я пытаюсь скомпилировать его под Windows, я создал файл .pro специально для компиляции в Windows.

Я использую псевдокласс (просто пространство имен с множеством методов, но без оператора класса, чтобы я мог использовать его без создания объекта), это прекрасно работает в Linux, но
когда я пытаюсь скомпилировать против окон, я получаю «неразрешенный внешний символ» во всем коде, где используется этот псевдокласс.

Псевдокласс выглядит так:

namespace foo {
bool method_bar();
}

Тогда я использую это так:

foo:method_bar();

Довольно просто, немного похоже на статические методы.

Прежде чем кто-то спросит меня, почему бы не использовать статические методы в первую очередь; У меня есть особые ситуации, в которых я не могу использовать эти методы как статические. Вот почему я строю методы прямо под пространством имен.

Итак, в моем файле .PRO я добавил файлы .h и .cpp из своего псевдокласса следующим образом:

 HEADERS += \
....
include/foo.h
....SOURCES += \
....
include/foo.cpp
----

Хотя он включает в себя файлы в моих проектах, он выдает LNK2019: неразрешенная внешняя ошибка символа.

Я не новичок в программировании, но я новичок в Qt.

Любая помощь будет высоко оценена.

ps: прости мои английские ошибки.

1

Решение

прежде всего оператор области видимости — foo «::» method_bar ();

Обратите внимание, что заголовок включен перед использованием функции, чтобы места, где вы когда-либо вызывали эту функцию, знали о объявлениях функции

Нет проблем в использовании пространства имен в QT.

Еще одно предложение будет

использование пространства имен foo;

Просмотр полного кода действительно помог бы мне решить проблему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]