Я пытаюсь инициализировать переменные-члены const в списке инициализации члена конструктора.
Я получаю следующую ошибку:
error: declaration does not declare anything [-fpermissive]
const uint32_t LEDS
^
Мой код:
#include <unistd.h>
class BaseAddr {
public:
BaseAddr():
LEDS (0x41200000),
SW1 (0x41210000), // switch 1
SW2 (0x41220000), // switch 2
AXI_BRAM (0x40000000), // 128 registers
AXI_DUMMY (0x43c00000) // 16 registers, 4 lsb are connected with leds
{ /* nop */ }
virtual ~BaseAddr() {}
const uint32_t LEDS;
const uint32_t SW1;
const uint32_t SW2;
private:
const uint32_t AXI_BRAM;
const uint32_t AXI_DUMMY;
};
почему это дает эту ошибку?
0
Решение
Я собираюсь сказать, что у вас есть макрос LEDS
где-то определяется следующим образом:
#define LEDS
Теперь ваша декларация участника становится:
const uint32_t;
Это правильно вызывает ошибку, как показано Вот.
2
Другие решения
Это потому, что заголовочный файл не включен для uint32_t.
Используйте любой из следующих заголовочных файлов stdint.h или cstdint
0
TheFatal |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
устанавливаю phpcades cprocsp-pki-phpcades-64_2.0.14071 после eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh —64`; make -f Makefile.unix получаю In file included from /usr/include/x86_64-linux-gnu/bits/statx.h:31, ubuntu 20, php 7.3.17, патч для пхп7 прошел без ошибок подскажите плиз, куда копать ? |
|
|
Санчир Момолдаев |
|
Статус: Сотрудник Группы: Модератор, Участники Сказал(а) «Спасибо»: 83 раз |
Добрый день! |
Техническую поддержку оказываем тут |
|
|
|
1 пользователь поблагодарил Санчир Момолдаев за этот пост. |
TheFatal
оставлено 15.09.2020(UTC) |
TheFatal |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
помогло, большое спасибо ! |
|
|
nakaa7 |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
У меня такая же проблема , но при добавлении -fpermissive в Makefile.unix и последующем выполнении: Отредактировано пользователем 5 февраля 2021 г. 17:26:45(UTC) |
|
|
Санчир Момолдаев |
|
Статус: Сотрудник Группы: Модератор, Участники Сказал(а) «Спасибо»: 83 раз |
Автор: nakaa7 У меня такая же проблема , но при добавлении -fpermissive в Makefile.unix и последующем выполнении: Добрый день! |
Техническую поддержку оказываем тут |
|
|
|
1 пользователь поблагодарил Санчир Момолдаев за этот пост. |
nakaa7
оставлено 08.02.2021(UTC) |
nakaa7 |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Спасибо помогло! |
|
|
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
- Forum
- Beginners
- duplication error
duplication error
I have a declaration of macro as follows:
|
|
And I am getting the following error:
|
|
Any idea ?
Thanks
Should work. Maybe try adding:
|
|
Last edited on
It looks like you are not able to declare the macro simply because you are using the keywords representing data types.
I would try either squishing them together (concatenating them) if that is really the name you want to go with, or use a different name.
Note that it does not give the error for uint — that is because it is a valid data type by itself.
For isntance, this should work:
uint_unsigned_int
or
uintUNSIGNEDint
etc.
Topic archived. No new replies allowed.
Это очень любительский вопрос, на который, я уверен, будет очень простой ответ, но я не могу понять проблему. У меня есть файл заголовка с соответствующим файлом .cpp, но по какой-то причине всякий раз, когда я пытаюсь скомпилировать с помощью g++, я продолжаю получать сообщение об ошибке:
декларация ничего не декларирует
Я почти уверен, что проблема в том, что я не инициализирую (единственную) переменную в файле, но я не уверен, для чего ее инициализировать. Если кто-то может помочь, я был бы очень признателен! Вот мои файлы:
ТаблицаСимволовСловарь.h
#ifndef SymbolTable
#define SymbolTable
#include <new>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
using namespace std;
#pragma once
struct Symbol
{
std::string Name;
int Address;
Symbol::Symbol()
{ }
Symbol::Symbol(const string name, int address)
{
std::string sym(name);
this->Name = sym;
this->Address = address;
}
};
extern map<std::string, Symbol> SymbolTable;
#endif
SymbolTableDictionary.cpp
#include <new>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <map>
#include "SymbolTableDictionary.h"
using namespace std;
map<std::string, Symbol> SymbolTable;
Ошибки компиляции:
In file included from SymbolTableDictionary.cpp:8:0:
SymbolTableDictionary.h:18:5: error: extra qualification ‘Symbol::’ on member ‘Symbol’ [-fpermissive]
SymbolTableDictionary.h:21:5: error: extra qualification ‘Symbol::’ on member ‘Symbol’ [-fpermissive]
SymbolTableDictionary.h:29:8: error: declaration does not declare anything [-fpermissive]
SymbolTableDictionary.cpp:12:1: error: declaration does not declare anything [-fpermissive]