Error declaration does not declare anything fpermissive

Я пытаюсь инициализировать переменные-члены const в списке инициализации члена конструктора. Я получаю следующую ошибку: error: declaration does not...

Я пытаюсь инициализировать переменные-члены 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


Offline

TheFatal

 


#1
Оставлено
:

15 сентября 2020 г. 2:59:20(UTC)

TheFatal

Статус: Новичок

Группы: Участники

Зарегистрирован: 15.09.2020(UTC)
Сообщений: 2

Сказал(а) «Спасибо»: 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,
from /usr/include/x86_64-linux-gnu/sys/stat.h:446,
from /data/web/source/php-7.3.17//Zend/zend_stream.h:26,
from /data/web/source/php-7.3.17//Zend/zend.h:37,
from /data/web/source/php-7.3.17//main/php.h:33,
from stdafx.h:92,
from PHPCadesCPSigners.cpp:1:
/usr/include/linux/stat.h:59:2: error: declaration does not declare anything [-fpermissive]
59 | __s32 __reserved;
| ^~~~~
make: *** [Makefile.unix:30: PHPCadesCPSigners.o] Error 1

ubuntu 20, php 7.3.17, патч для пхп7 прошел без ошибок

подскажите плиз, куда копать ?


Вверх


Offline

Санчир Момолдаев

 


#2
Оставлено
:

15 сентября 2020 г. 8:25:50(UTC)

Санчир Момолдаев

Статус: Сотрудник

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,002
Российская Федерация

Сказал(а) «Спасибо»: 83 раз
Поблагодарили: 212 раз в 204 постах

Добрый день!
в файле Makefile.unix в строке после -fPIC -DPIC (Установка флагов компилятора)
Добавьте -fpermissive, потом попробуйте собрать
/usr/include/linux/stat.h не наш хедер. поэтому решение только такое

Техническую поддержку оказываем тут
Наша база знаний


Вверх

thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.

TheFatal

оставлено 15.09.2020(UTC)


Offline

TheFatal

 


#3
Оставлено
:

15 сентября 2020 г. 13:48:36(UTC)

TheFatal

Статус: Новичок

Группы: Участники

Зарегистрирован: 15.09.2020(UTC)
Сообщений: 2

Сказал(а) «Спасибо»: 1 раз

помогло, большое спасибо !


Вверх


Offline

nakaa7

 


#4
Оставлено
:

5 февраля 2021 г. 17:21:11(UTC)

nakaa7

Статус: Новичок

Группы: Участники

Зарегистрирован: 05.02.2021(UTC)
Сообщений: 2
Российская Федерация

Сказал(а) «Спасибо»: 1 раз

У меня такая же проблема , но при добавлении -fpermissive в Makefile.unix и последующем выполнении:
eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh —64`; make -f Makefile.unix
получаю:
Сообщения ассемблера:
Критическая ошибка: не удалось создать PHPCadesCPSigners.o: Отказано в доступе
make: *** [Makefile.unix:30: PHPCadesCPSigners.o] Ошибка 1

Отредактировано пользователем 5 февраля 2021 г. 17:26:45(UTC)
 | Причина: Не указана


Вверх


Offline

Санчир Момолдаев

 


#5
Оставлено
:

6 февраля 2021 г. 9:02:36(UTC)

Санчир Момолдаев

Статус: Сотрудник

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,002
Российская Федерация

Сказал(а) «Спасибо»: 83 раз
Поблагодарили: 212 раз в 204 постах

Автор: nakaa7 Перейти к цитате

У меня такая же проблема , но при добавлении -fpermissive в Makefile.unix и последующем выполнении:
eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh —64`; make -f Makefile.unix
получаю:
Сообщения ассемблера:
Критическая ошибка: не удалось создать PHPCadesCPSigners.o: Отказано в доступе
make: *** [Makefile.unix:30: PHPCadesCPSigners.o] Ошибка 1

Добрый день!
скорее всего вы выполняли через sudo
залогиньтесь рутом: sudo -s
далее опять попробуйте собрать

Техническую поддержку оказываем тут
Наша база знаний


Вверх

thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.

nakaa7

оставлено 08.02.2021(UTC)


Offline

nakaa7

 


#6
Оставлено
:

8 февраля 2021 г. 15:52:40(UTC)

nakaa7

Статус: Новичок

Группы: Участники

Зарегистрирован: 05.02.2021(UTC)
Сообщений: 2
Российская Федерация

Сказал(а) «Спасибо»: 1 раз

Спасибо помогло!


Вверх

Пользователи, просматривающие эту тему

Guest

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

  • Forum
  • Beginners
  • duplication error

duplication error

I have a declaration of macro as follows:

 
  #define uint unsigned int 

And I am getting the following error:

1
2
3
4
5
6
7
8
9
10
11
/home/sajjad/Documents/OpenGL/Samples/GLSLCookBook/glslcookbook-master/ingredients/vbomeshadj.cpp:4:14: error: duplicate ‘unsigned#define uint unsigned int
              ^
/home/sajjad/Documents/OpenGL/Samples/GLSLCookBook/glslcookbook-master/ingredients/vbomeshadj.cpp:4:23: error: multiple types in one declaration
 #define uint unsigned int
                       ^
/home/sajjad/Documents/OpenGL/Samples/GLSLCookBook/glslcookbook-master/ingredients/vbomeshadj.cpp:4:23: error: declaration does not declare anything [-fpermissive]
make[2]: *** [ingredients/CMakeFiles/ingredients.dir/vbomeshadj.cpp.o] Error 1
make[1]: *** [ingredients/CMakeFiles/ingredients.dir/all] Error 2
make: *** [all] Error 2

Any idea ?

Thanks

Should work. Maybe try adding:

1
2
3
#ifndef uint
#define uint unsigned int
#endif 

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]

Понравилась статья? Поделить с друзьями:
  • Error debugger is found on this machine
  • Error debug is not a valid attribute for a play
  • Error deadly premonition
  • Error deadlock detected sqlstate 40p01
  • Error dds reader tried to allocate