Perforce C ++ p4api — сборка завершается неудачно в Visual Studio

Я пытаюсь создать приложение C ++, которое подключается к серверу Perforce, но сборка не удалась, потому что он не может найти библиотеки p4api.
Я новичок в C ++, Visual Studio и p4api, поэтому я, вероятно, сделал что-то не так.

Я использую Windows 8 и Visual Studio 2013 Professional.

Подробности:

Я скачал p4api.zip с ftp://ftp.perforce.com/perforce/r15.2/bin.mingw64x64/

Обратите внимание, что библиотеки, найденные в p4api.zip, имеют тип . где, как в главе 2 гид пользователя говорит что для винды это должно быть .Lib

Конфигурация Visual Studio:

Из Visual Studio, Свойства проекта -> Свойства конфигурации:

  • Линкер -> Общие -> Дополнительные каталоги библиотек => Я указал каталог, содержащий p4api . например, файлы C:\Users\myuser\Documents\Visual Studio 2013\Projects\ProjectName\ProjectName\lib\p4api
  • Компоновщик -> Ввод -> Дополнительные зависимости => Я указал имя каждого . файл в порядке, описанном в руководстве пользователя. Я также добавил дополнительные библиотеки, как описано в этот блог например libclient.a;librpc.a;libsupp.a;libp4sslstub.a;wsock32.lib;libcmt.lib;oldnames.lib;kernel32.lib;ws2_32.lib;advapi32.lib
  • Компоновщик -> Командная строка -> Дополнительные параметры => Как в руководстве пользователя, например /DOS_NT /MT /DCASE_INSENSITIVE
  • C / C ++ -> Общие -> Дополнительные каталоги включения => Я указал расположение файлов заголовков перформанса, например C:\Users\myuser\Documents\Visual Studio 2013\Projects\ ProjectName\ProjectName\include\p4

Код

main.h

#pragma once
#include <iostream>
#include <clientapi.h>

class Main : public ClientUser
{
public:
Main();
~Main();
};

main.cpp

#include "Main.h"
Main::Main()
{
}Main::~Main()
{
}

int main() {
std::cout << "Hello World\n";
ClientApi client;
Error e;

client.Init(&e);

Main ui;
client.Run("info", &ui);

client.Final(&e);
}

Ошибки сборки:

1>------ Build started: Project: PEConnect, Configuration: Debug Win32 ------
1>cl : Command line warning D9025: overriding '/MDd' with '/MT'
1>  Main.cpp
1>Main.obj : error LNK2019: unresolved external symbol "public: __thiscall     Error::~Error(void)" (??1Error@@QAE@XZ) referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol "public: virtual   __thiscall ClientUser::~ClientUser(void)" (??1ClientUser@@UAE@XZ) referenced in function "public: virtual __thiscall Main::~Main(void)" (??1Main@@UAE@XZ)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::InputData(class StrBuf *,class Error *)" (?InputData@ClientUser@@UAEXPAVStrBuf@@PAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::HandleError(class Error *)" (?HandleError@ClientUser@@UAEXPAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::Message(class Error *)" (?Message@ClientUser@@UAEXPAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::OutputError(char const *)" (?OutputError@ClientUser@@UAEXPBD@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::OutputInfo(char,char const *)" (?OutputInfo@ClientUser@@UAEXDPBD@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::OutputBinary(char const *,int)" (?OutputBinary@ClientUser@@UAEXPBDH@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::OutputText(char const *,int)" (?OutputText@ClientUser@@UAEXPBDH@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::OutputStat(class StrDict *)" (?OutputStat@ClientUser@@UAEXPAVStrDict@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::Prompt(class StrPtr const &,class StrBuf &,int,class Error *)" (?Prompt@ClientUser@@UAEXABVStrPtr@@AAVStrBuf@@HPAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::Prompt(class StrPtr const &,class StrBuf &,int,int,class Error *)" (?Prompt@ClientUser@@UAEXABVStrPtr@@AAVStrBuf@@HHPAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::ErrorPause(char *,class Error *)" (?ErrorPause@ClientUser@@UAEXPADPAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::Edit(class FileSys *,class Error *)" (?Edit@ClientUser@@UAEXPAVFileSys@@PAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::Diff(class FileSys *,class FileSys *,int,char *,class Error *)" (?Diff@ClientUser@@UAEXPAVFileSys@@0HPADPAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::Diff(class FileSys *,class FileSys *,class FileSys *,int,char *,class Error *)" (?Diff@ClientUser@@UAEXPAVFileSys@@00HPADPAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::Merge(class FileSys *,class FileSys *,class FileSys *,class FileSys *,class Error *)" (?Merge@ClientUser@@UAEXPAVFileSys@@000PAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall ClientUser::Resolve(class ClientMerge *,class Error *)" (?Resolve@ClientUser@@UAEHPAVClientMerge@@PAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall ClientUser::Resolve(class ClientResolveA *,int,class Error *)" (?Resolve@ClientUser@@UAEHPAVClientResolveA@@HPAVError@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::Help(char const * const *)" (?Help@ClientUser@@UAEXPBQBD@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual class FileSys * __thiscall ClientUser::File(enum FileSysType)" (?File@ClientUser@@UAEPAVFileSys@@W4FileSysType@@@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual class ClientProgress * __thiscall ClientUser::CreateProgress(int)" (?CreateProgress@ClientUser@@UAEPAVClientProgress@@H@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall ClientUser::ProgressIndicator(void)" (?ProgressIndicator@ClientUser@@UAEHXZ)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::SetOutputCharset(int)" (?SetOutputCharset@ClientUser@@UAEXH@Z)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::DisableTmpCleanup(void)" (?DisableTmpCleanup@ClientUser@@UAEXXZ)
1>Main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall ClientUser::SetQuiet(void)" (?SetQuiet@ClientUser@@UAEXXZ)
1>Main.obj : error LNK2019: unresolved external symbol "public: __thiscall ClientApi::ClientApi(void)" (??0ClientApi@@QAE@XZ) referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall ClientApi::~ClientApi(void)" (??1ClientApi@@UAE@XZ) referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol "public: void __thiscall ClientApi::Init(class Error *)" (?Init@ClientApi@@QAEXPAVError@@@Z) referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol "public: void __thiscall ClientApi::Run(char const *,class ClientUser *)" (?Run@ClientApi@@QAEXPBDPAVClientUser@@@Z) referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol "public: int __thiscall ClientApi::Final(class Error *)" (?Final@ClientApi@@QAEHPAVError@@@Z) referenced in function _main
1>Main.obj : error LNK2001: unresolved external symbol "private: static char * StrBuf::nullStrBuf" (?nullStrBuf@StrBuf@@0PADA)
1>c:\users\myuser\documents\visual studio  2013\Projects\ProjectName\Debug\PEConnect.exe : fatal error LNK1120: 32 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Дополнительные проблемы:

1) Я правильно загрузил p4api? Я не могу найти папку специально для Windows. Единственная папка, которая выглядит более актуальной для Windows, — это bin.mingw

2) Почему файлы библиотеки имеют тип . не .Lib?

3) Правильно ли я установил зависимости в Visual Studio? Если да, почему сборка не удалась?

Пожалуйста, дайте мне знать, если вам нужно больше деталей.

Заранее спасибо.

0

Решение

Задача ещё не решена.

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

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

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