Ошибка при попытке собрать проект с включенной библиотекой библиотеки классов Qt - PullRequest
0 голосов
/ 18 мая 2019

Я создал библиотеку классов Qt с помощью Qt VS Tools для visual studio 2019. Я включил эту библиотеку в свой проект Qt, который я тоже создал с помощью инструментов Qt VS, но теперь мой проект не будет собираться.

Это .pro-файл моего проекта:

# ----------------------------------------------------
# This file is generated by the Qt Visual Studio Tools.
# ------------------------------------------------------

TEMPLATE = app
TARGET = JanturiolGameServer
DESTDIR = ./Win32/Debug
QT += core network gui widgets networkauth
CONFIG += debug
DEFINES += _UNICODE _ENABLE_EXTENDED_ALIGNED_STORAGE WIN64 QT_DLL QT_NETWORK_LIB QT_NETWORKAUTH_LIB QT_WIDGETS_LIB
INCLUDEPATH += ../../JanturiolLib \
    ./GeneratedFiles \
    . \
    ./GeneratedFiles/$(ConfigurationName)
LIBS += -L"../../JanturiolLib"
DEPENDPATH += .
MOC_DIR += ./GeneratedFiles/$(ConfigurationName)
OBJECTS_DIR += debug
UI_DIR += ./GeneratedFiles
RCC_DIR += ./GeneratedFiles
include(JanturiolGameServer.pri)

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../JanturiolLib/Win32/release/ -lJanturiolLib
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../JanturiolLib/Win32/debug/ -lJanturiolLib
else:unix: LIBS += -L$$PWD/../JanturiolLib/Win32/ -lJanturiolLib

INCLUDEPATH += $$PWD/../JanturiolLib
DEPENDPATH += $$PWD/../JanturiolLib

Это .pro-файл моей библиотеки:

# ----------------------------------------------------
# This file is generated by the Qt Visual Studio Tools.
# ------------------------------------------------------

TEMPLATE = lib
TARGET = JanturiolLib
DESTDIR = ./Win32/Release
QT += core xml network gui uitools widgets networkauth
CONFIG += release
DEFINES += _UNICODE _ENABLE_EXTENDED_ALIGNED_STORAGE WIN64 QT_DLL QT_NETWORK_LIB QT_NETWORKAUTH_LIB QT_UITOOLS_LIB QT_WIDGETS_LIB QT_XML_LIB JANTURIOLLIB_LIB
INCLUDEPATH += ./GeneratedFiles \
    . \
    ./GeneratedFiles/$(ConfigurationName)
DEPENDPATH += .
MOC_DIR += ./GeneratedFiles/$(ConfigurationName)
OBJECTS_DIR += release
UI_DIR += ./GeneratedFiles
RCC_DIR += ./GeneratedFiles
include(JanturiolLib.pri)

То есть PlayerChracter.h:

#pragma once
#include "BaseCharacter.h"
#include <string>

enum CharacterClass{warrior, mage, ranger};

//position
struct Pos
{
    int xPos;
    int yPos;
};

class PlayerCharacter : public BaseCharacter
{
public:
    PlayerCharacter(std::string charName);
    virtual ~PlayerCharacter();

protected:
    std::string name;
    Pos position;
};

То есть PlayerChracter.cpp:

    #include "PlayerCharacter.h"

   PlayerCharacter::PlayerCharacter(std::string charName)
    {
        name = charName;
        position.xPos = 0;
        position.yPos = 0;
    }


    PlayerCharacter::~PlayerCharacter()
    {
    }

Если я пытаюсь построить проект с помощью Visual Studio, я получаю эту ошибку:

1> ------ Сборка начата: Проект: JanturiolGameServer, Конфигурация: Отладка Win32 ------ 1> JanturiolGameServer.cpp 1> JanturiolGameServer.obj: ошибка LNK2019: неразрешенный внешний символ "public: __thiscall PlayerCharacter :: PlayerCharacter (класс std :: basic_string, класс std :: allocator>) "(?? 0PlayerCharacter @@ QAE @ V? $ Basic_string @ DU? $ Char_traits @ D @ std @@ V? $ Allocator @ D @ 2 @@ std @@@ Z) ссылка на функцию" private: void __thiscallJanturiolGameServer :: ProcessDatagram (класс QByteArray &) "(? ProcessDatagram @ JanturiolGameServer @@ AAEXAAVQByteArray @@@ Z) 1> C: \ Users \ GKR \ source \ repos \ JanturiolGameServer \ Win32 \ Debug \ JanturiolGameServer.exe: фатальная ошибка LNK1120: 1 неразрешенная внешняя оболочка 1> Закончен сборочный проект "JanturiolGameServer.vcxproj" - FAIL.========== Сборка: 0 успешных, 1 неудачных, 0 актуальных, 0 пропущенных ==========

Если я пытаюсь построить проект с помощьюсоздатель Qt 4. 9. 0, я получаю эту ошибку:

https://monosnap.com/file/f9XQ1s0VQpfx8e6PXYtkaNl2X409ra

То есть путь к файлу .lib:

https://monosnap.com/file/oeaH3vuXMIYQ7aLY3vcWd6qk0QqOOy

1 Ответ

0 голосов
/ 18 мая 2019

В вашем файле проекта вы установили WIN64, но выходные данные вашего компилятора отлаживают Win32.

См. «Вы пытаетесь связать 64-разрядные библиотеки с 32-разрядным кодом или 32-разрядные библиотеки с 64-разрядными».код "как возможная причина на https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-error-lnk2019?view=vs-2019

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...