неразрешенный внешний символ сервера CORBA - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь создать сервер с OmniORB, и я хочу создать несколько shared_ptrs. Но когда я делаю это, я получаю следующую ошибку 2

error LNK2019: unresolved external symbol __imp__invalid_parameter referenced in function "public: class std::shared_ptr<struct SharedPtr_i::Vector2> & __cdecl std::array<class std::shared_ptr<struct SharedPtr_i::Vector2>,1000>::operator[](unsigned __int64)" (??A?$array@V?$shared_ptr@UVector2@SharedPtr_i@@@std@@$0DOI@@std@@QEAAAEAV?$shared_ptr@UVector2@SharedPtr_i@@@1@_K@Z)
error LNK2019: unresolved external symbol __imp__CrtDbgReport referenced in function "public: class std::shared_ptr<struct SharedPtr_i::Vector2> & __cdecl std::array<class std::shared_ptr<struct SharedPtr_i::Vector2>,1000>::operator[](unsigned __int64)" (??A?$array@V?$shared_ptr@UVector2@SharedPtr_i@@@std@@$0DOI@@std@@QEAAAEAV?$shared_ptr@UVector2@SharedPtr_i@@@1@_K@Z)

Я осознаю, что большинство этих "неразрешенных внешних символов" вызвано забыванием импортировать файл * .lib. Однако, насколько мне известно, мой код не требует дополнительного файла .lib.

Этот код вызывает у меня проблему:

#include "pch.h"
#include <array>
#include "sharedPtr.hh"

class SharedPtr_i : public POA_SharedPtr
{
private:
    struct Vector2
    {
        float x, y;
    };
public:
    inline SharedPtr_i() {}
    virtual ~SharedPtr_i() {}
    void CreateSharedPtr();
};

void SharedPtr_i::CreateSharedPtr()
{
    std::array<std::shared_ptr<Vector2>, 1000 > sharedPtrs;
    for (int i = 0; i < sharedPtrs.size(); i++)
    {
        sharedPtrs[i] = std::shared_ptr<Vector2>(new Vector2()); // This line caused the error
    }
}

В ходе тестирования я обнаружил, чтоквадратные скобки ([]) вызывают ошибку, но как квадратные скобки вызывают неразрешенную внешнюю ошибку символа?

Любые советы о том, как решить проблему, приветствуются.

1 Ответ

0 голосов
/ 11 октября 2019

Как указано в комментарии, ошибки компоновщика, связанные с __imp__invalid_parameter и __imp__CrtDbgReport, появляются при сборке проекта в режиме отладки, а другие настройки, такие как макросы / флаги, не соответствуют ему.

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