Я пытаюсь использовать буферы протокола google из Qt в Windows. Поэтому я собрал источники protobuf из github, используя msys из MingGW. Прото-компилятор (protoc), похоже, работает нормально, но, к сожалению, он не работает, чтобы использовать сгенерированные файлы .ph.h и .pb.cc из среды Qt.Буферы протокола Google с использованием MinGW в Windows
Добавлено это мой файл .pro:
LIBS += "C:/MinGW/msys/1.0/bin/libprotobuf-10.dll"
INCLUDEPATH += "C:/MinGW/msys/1.0/include/"
, но я все еще получаю «неопределенную ссылку на ...» на все используемое methodes класса, когда я пытаюсь скомпилировать его.
Код должен быть верным, так как он отлично работает на linux-машине, используя protoc и Qt. Это должно быть так, как я включаю .dll, или я включаю неправильный, так как заголовки, кажется, решают нормально. Выберите соответствующую DLL, чтобы включить в эту должность: http://www.ptrackapp.com/apclassys-notes/building-google-protocol/
Я немного потерял здесь и был бы признателен за любые удерживаемые.
Заранее спасибо.
Вы разрабатываете MSYS? Зачем? Ничто из того, что вы намекаете, не имеет места в составе MSYS. Ваши собственные приложения должны ___never___ зависеть от любой DLL в 'C:/MinGW/msys/1.0/bin' и не использовать какой-либо заголовок в' C:/MinGW/msys/1.0/include'; эти каталоги зарезервированы для разработки самого MSYS. Возможно, вы намеревались ссылаться на каталоги 'C:/MinGW/include' и' C:/MinGW/bin'? –
Чтобы использовать буферы протокола в Windows, я должен скомпилировать с помощью MinGW или Cygwin (https://github.com/google/protobuf, см. Раздел Windows). Но чтобы иметь возможность использовать полученные файлы ph.h и pb.cc в моем приложении Windows, мне нужны соответствующие заголовки и библиотеки, которые, очевидно, находятся в директории msys, где я ее скомпилировал. Я что-то пропустил, или как я могу использовать их без соответствующих заголовков и библиотек? – user3482407
Вам что-то не хватает. Компиляция с MinGW, заголовки и библиотеки, которые вы используете ___must___, находятся в дереве 'C:/MinGW/{include, lib, bin}; вы должны использовать ___not___ компоненты в дереве 'C:/MinGW/msys/1.0', поскольку они являются частными для самого MSYS, а компиляторы MinGW не используют их. Либо вы неправильно установили свои собственные встроенные компоненты, либо пытаетесь использовать компоненты, которые не предназначены для вашего использования. В последнем случае вам нужно будет портировать любые отсутствующие компоненты самостоятельно. –