ошибка: базовый тип ссылки на член ‘uint32_t’ (он же «unsigned int») не является структурой или объединением

Эй, сообщество Stackoverflow,
Прямо сейчас у меня есть следующая проблема: я хочу скомпилировать C ++ с Mac OSX.10.11. Но каждый раз, когда я хочу сделать код, он дает мне код ошибки. Я уже гуглил это, но ничего не нашел.

hashGenesisBlock = uint256("0x01");
if (true && genesis.GetHash() != hashGenesisBlock)
{
Logprintf("recalculating params for mainnet.\n");
Logprintf("old mainnet genesis nonce: %s\n", genesis.nNonce.ToString().c_str());
Logprintf("old mainnet genesis hash:  %s\n", hashGenesisBlock.ToString().c_str());
// deliberately empty for loop finds nonce value.
for(genesis.nNonce == 0; genesis.GetHash() > bnProofOfWorkLimit; genesis.nNonce++){ }
Logprintf("new mainnet genesis merkle root: %s\n", genesis.hashMerkleRoot.ToString().c_str());
Logprintf("new mainnet genesis nonce: %s\n", genesis.nNonce.ToString().c_str());
Logprintf("new mainnet genesis hash: %s\n", genesis.GetHash().ToString().c_str());
}

Сообщение об ошибке:

Making all in src
CXX      libgamebit_common_a-chainparams.o
chainparams.cpp:143:13: error: use of undeclared identifier 'Logprintf'
Logprintf("recalculating params for mainnet.\n");
^
chainparams.cpp:144:72: error: member reference base type 'uint32_t'
(aka 'unsigned int') is not a structure or union
...Logprintf("old mainnet genesis nonce: %s\n", genesis.nNonce.ToString().c...

У вас есть идеи, почему я получаю такую ​​ошибку?
На самом деле я пытаюсь скомпилировать биткойн.

Я надеюсь, что вы можете мне помочь.
Спасибо!

-3

Решение

Вы должны сосредоточиться на первой ошибке компилятора:

error: use of undeclared identifier 'Logprintf'

То есть вы используете этот идентификатор Logprintfвозможно функция, но она не определена. Скорее всего, вам не хватает #include это определяет это.

Следующая ошибка:

error: member reference base type 'uint32_t'

если вы посмотрите на строку 144, столбец 72, вот она:

Logprintf("old mainnet genesis nonce: %s\n", genesis.nNonce.ToString()
^
column 72|

Так что ваши nNonce имеет тип uint32_t и вы пытаетесь вызвать функцию-член ToString() в теме. Но базовые типы в C ++ не имеют функций-членов, есть только структуры (то есть классы) и объединения.

Я подозреваю, что вы пытаетесь скомпилировать некоторый код C ++ / CLI с помощью чистого компилятора C ++. Боюсь, понадобится перевод.

Эту последнюю ошибку вы можете исправить, если у вас есть правильное определение Logprintf, написав:

Logprintf("old mainnet genesis nonce: %u\n", (unsigned)genesis.nNonce);
1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector