Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 866

Программа не компилируется - пишет что ошибка с стандартных заголовочных файлах

26.11.2022, 15:53. Показов 1481. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
собственно файл - содержит только include. Остально вообще закоменчено. через #if 0
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
 
#include <pcap/pcap.h>
 
#include <arpa/inet.h>
 
#include <netinet/ether.h>
#include <netinet/udp.h>
#include <net/ethernet.h>
#include <netinet/ip.h>
 
 
 
 
#include "defines.h"
#include "logger.h"
#include "clock.h"
 
#if 0
/*===============================================================================*/
static b32 pcap_started=0;
static pcap_t * PCapFileHandle=0;
команда компиляции и вывод компилятора:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
clang -Wall -msse2 -mfpmath=sse -pthread -fvisibility=hidden -fno-stack-protector -D_REENTRANT -ggdb -O2 -DDEBUG -I source -I source/project_independent -I source -I source/network -I source -I source/message_handlers -I source -I source/asset_manager -I source -I source/debug -I source -I source/third_party/gl3w/src -I source/third_party/gl3w/include/GL -I source/third_party/gl3w/include/KHR -I source/third_party/imgui -I source/core_data -I source -I source/platform/platform_linux -I source/platform -I source -I source/cache_storage -I source/cache_storage/cache_persistent -I source -I source/ui -I source/source_lib -I source/source_lib/linux_console -I source/source_lib -I source/source_lib/platform_filesystem -I source/source_lib/platform_memory -I source/source_lib/third_party -I source/source_lib/third_party/STB -I source/source_lib/third_party/parg -I source/source_lib/third_party/debug_break -I source/source_lib/third_party/STB_OLD -I source/source_lib/third_party/handmademath -I source/source_lib/third_party/libs -I source/source_lib/third_party/endianness -I source/source_lib -I source -I source/renderer/renderer_opengl -I source/renderer -I source -I source_binary/glfw/GLFW -I source_binary/openjpeg-2.5/include -I source_binary/sdl2-64/include/SDL2 -c source/network/network_pcap_packets_source.c -o obj/source/network/network_pcap_packets_source.o
In file included from source/network/network_pcap_packets_source.c:14:
/usr/include/netinet/ip.h:114:18: error: duplicate member 'ip_v'
    unsigned int ip_v:4;                /* version */
                 ^
/usr/include/netinet/ip.h:111:18: note: previous declaration is here
    unsigned int ip_v:4;                /* version */
                 ^
/usr/include/netinet/ip.h:115:18: error: duplicate member 'ip_hl'
    unsigned int ip_hl:4;               /* header length */
                 ^
/usr/include/netinet/ip.h:110:18: note: previous declaration is here
    unsigned int ip_hl:4;               /* header length */
                 ^
/usr/include/netinet/ip.h:144:18: error: duplicate member 'ipt_oflw'
    unsigned int ipt_oflw:4;            /* overflow counter */
                 ^
/usr/include/netinet/ip.h:141:18: note: previous declaration is here
    unsigned int ipt_oflw:4;            /* overflow counter */
                 ^
/usr/include/netinet/ip.h:145:18: error: duplicate member 'ipt_flg'
    unsigned int ipt_flg:4;             /* flags, see below */
                 ^
/usr/include/netinet/ip.h:140:18: note: previous declaration is here
    unsigned int ipt_flg:4;             /* flags, see below */
                 ^
source/network/network_pcap_packets_source.c:183:16: warning: unused variable 'PacketTime' [-Wunused-variable]
        double PacketTime = CapturedHeader->ts.tv_sec + CapturedHeader->ts.tv_usec * 0.000001;
               ^
source/network/network_pcap_packets_source.c:184:34: warning: unused variable 'EthernetHeader' [-Wunused-variable]
        struct ethernet_header * EthernetHeader = (struct ethernet_header *) CapturedData;
                                 ^
source/network/network_pcap_packets_source.c:185:29: warning: unused variable 'IP4Header' [-Wunused-variable]
        struct ip4_header * IP4Header = (struct ip4_header *) (((intptr_t)CapturedData) +sizeof(struct ethernet_header));
                            ^
source/network/network_pcap_packets_source.c:174:9: warning: unused variable 'FirstPacketTimeFound' [-Wunused-variable]
    int FirstPacketTimeFound =0;
собственно ругается на то что в стандартном файле:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct ip
  {
#if __BYTE_ORDER == __LITTLE_ENDIAN
    unsigned int ip_hl:4;       /* header length */
    unsigned int ip_v:4;        /* version */
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
    unsigned int ip_v:4;        /* version */
    unsigned int ip_hl:4;       /* header length */
#endif
    uint8_t ip_tos;         /* type of service */
    unsigned short ip_len;      /* total length */
    unsigned short ip_id;       /* identification */
    unsigned short ip_off;      /* fragment offset field */
#define IP_RF 0x8000            /* reserved fragment flag */
#define IP_DF 0x4000            /* dont fragment flag */
#define IP_MF 0x2000            /* more fragments flag */
#define IP_OFFMASK 0x1fff       /* mask for fragmenting bits */
    uint8_t ip_ttl;         /* time to live */
    uint8_t ip_p;           /* protocol */
    unsigned short ip_sum;      /* checksum */
    struct in_addr ip_src, ip_dst;  /* source and dest address */
  };
почему-то у меня компилятор считает что __BYTE_ORDER == __LITTLE_ENDIAN и __BYTE_ORDER == __BIG_ENDIAN одновременно.

никто не сталкивался с таким ?
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2022, 15:53
Ответы с готовыми решениями:

О стандартных заголовочных файлах
Не знаю в какую категорию отнести данное нубство, но все же: Часто использую некоторые возможности/функции для которых не делал...

Ни одна программа не компилируется - пишет, что ошибка в первой строке .MODEL Tiny
Доброго времени суток! Требуется помощь: скачал fasm, но ни одна программа не компилится - пишет, что ошибка в первой строке .MODEL...

Ошибки в стандартных заголовочных файлах при компиляции проекта
Старый проект на С++ пытаюсь скомпилировать в VS2008 выдает 66 ошибкок в файлах: string.h atalloc.h wchar.h atlchecked.h ...

4
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.11.2022, 10:05
C
1
2
3
4
5
6
//…
#include <net/ethernet.h>
#define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
#define __BIG_ENDIAN __ORDER_BIG_ENDIAN__
#include <netinet/ip.h>
//…
0
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 866
27.11.2022, 13:06  [ТС]
Спасибо, но непомогло.
Code
1
2
3
4
5
6
7
8
9
In file included from source/network/network_pcap_packets_source.c:18:
/usr/include/netinet/ip.h:39:3: error:  "Please fix <bits/endian.h>"
# error "Please fix <bits/endian.h>"
  ^
/usr/include/netinet/ip.h:53:3: error:  "Please fix <bits/endian.h>"
# error "Please fix <bits/endian.h>"
  ^
2 errors generated.
make: *** [obj/source/network/network_pcap_packets_source.o] Error 1
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.11.2022, 13:15
А-ха-ха:
C
1
2
3
4
5
6
7
8
9
#if __BYTE_ORDER == __LITTLE_ENDIAN
    unsigned int ihl:4;
    unsigned int version:4;
#elif __BYTE_ORDER == __BIG_ENDIAN
    unsigned int version:4;
    unsigned int ihl:4;
#else
# error "Please fix <bits/endian.h>"
#endif
Тогда так:
C
1
2
3
4
5
//…
#include <net/ethernet.h>
#include <endian.h>
#include <netinet/ip.h>
//…
0
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 866
27.11.2022, 13:34  [ТС]
ничего не поменялось.

вообще я думаю что тут дело в чём-то другом.
я вырезал этот файл из проекта в отдельную директорию, и попытался скомпилировть той же командой что и в проекте.
у в этом случае всё скомпилилось без ошибок,

модет какие переменные окружения портялся? хотя не должно сборка идёт так:
1)среда вызывает bash -c compile_make_autodep.sh
Code
1
2
#!/bin/bash
make -j1 --warn-undefined-variables -f makefile.linux
2)makefile.linux - это сделанный вручную маке файл.
Кликните здесь для просмотра всего текста
SRC_C := $(shell find -L source -type f \( -iname \*.c \) )
SRC_C += $(shell find -L source -type l \( -iname \*.c \) )
OBJ_C := $(patsubst %.c,obj/%.o, $(SRC_C))
DEP_C := $(patsubst %.c,obj/%.d, $(SRC_C))

SRC_CPP := $(shell find -L source -type f \( -iname \*.cpp \) )
SRC_CPP += $(shell find -L source -type l \( -iname \*.cpp \) )

OBJ_CPP := $(patsubst %.cpp,obj/%.o, $(SRC_CPP))
DEP_CPP := $(patsubst %.cpp,obj/%.d, $(SRC_CPP))

SRC_DIRS := $(shell find -L source -type f \( -iname \*.c -o -iname \*.cpp -o -iname \*.h \) -exec dirname {} \; | uniq )
SRC_DIRS += $(shell find -L source -type l \( -iname \*.c -o -iname \*.cpp -o -iname \*.h \) -exec dirname {} \; | uniq )

INCLUDES := $(addprefix -I ,$(SRC_DIRS))
INCLUDES += $(addprefix -I ,source_binary/glfw/GLFW)
INCLUDES += $(addprefix -I ,source_binary/openjpeg-2.5/include)
INCLUDES += $(addprefix -I ,source_binary/sdl2-64/include/SDL2)

LIB_DIRS := $(addprefix -L ,source_binary/glfw/lib)
LIB_DIRS += $(addprefix -L ,source_binary/openjpeg-2.5/lib)

LIBS = -lpcap -lGLEW -lGL -lopenjp2 -lglfw3 -lX11

CC=clang

GAME_PLATFORM := game.run

WarningFlags = -Wall
#WarningFlags += -Wno-write-strings
#WarningFlags += -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-missing-field-initializers
#WarningFlags += -Wno-unused-function -Wno-sign-compare -Wno-unused-result -Wno-strict-aliasing -Wno-switch
#WarningFlags += -Wshadow -Wduplicated-cond -Wextra -Wcast-qual -Wcast-align -Wunused -Wuninitialized
#WarningFlags += -Wformat=2 -Wfloat-equal -Wlogical-op -Wshift-overflow=2
MachineFlags += -msse2 -mfpmath=sse -pthread -fvisibility=hidden -fno-stack-protector
#-fPIC
DefinesFlags = -D_REENTRANT
# -Wconversion
#-D_GLIBCXX_DEBUG #-D_GLIBCXX_DEBUG_PEDANTIC -D_FORTIFY_SOURCE=2

OptimizationsFlagsCPP = -ggdb -O2 -DDEBUG
OptimizationsFlagsC = -ggdb -O2 -DDEBUG

#OptimizationsFlagsCPP = -g0 -O2 -DNDEBUG
#OptimizationsFlagsC = -g0 -O2 -DNDEBUG


FlagsCPP = -fno-rtti -fno-threadsafe-statics -fno-exceptions
#-std=gnu++11
FlagsC =
#-std=gnu11

CompilerFlagsCPP = $(WarningFlags) $(MachineFlags) $(DefinesFlags) $(OptimizationsFlagsCPP) $(FlagsCPP)
CompilerFlagsC = $(WarningFlags) $(MachineFlags) $(DefinesFlags) $(OptimizationsFlagsC) $(FlagsC)

.PHONY: all

all: showvars $(GAME_PLATFORM)

showvars:
# @echo SRC_LIB_C = $(SRC_LIB_C)
# @echo ~~~
# @echo SRC_LIB_CPP = $(SRC_LIB_CPP)
# @echo ~~~
# @echo SRC_LIB_DIRS = $(SRC_LIB_DIRS)
# @echo ~~~
# @echo OBJ_LIB_C = $(OBJ_LIB_C)
# @echo ~~~
# @echo INCLUDES_LIB = $(INCLUDES_LIB)
# @echo ~~~

$(GAME_PLATFORM): buildrepo $(OBJ_C) $(OBJ_CPP)
@echo ========= LINKING PLATFORM ===========
$(eval SDL_LIB = $(shell source_binary/sdl2-64/bin/sdl2-config --static-libs))
$(CC) -o $@ $(OBJ_C) $(OBJ_CPP) $(LIB_DIRS) $(LIBS) $(SDL_LIB)


buildrepo:
@$(call make-repo)

define make-repo
for dir in $(SRC_DIRS); \
do \
mkdir -v -p obj/$$dir; \
done
endef

obj/%.o: %.c
@echo ~~~~ Generating Deps
$(CC) $(CompilerFlagsC) $(INCLUDES) -MM -MF $(subst .o,.d,$@) -MP -MT $@ $<
@echo ~~~~ Compiling $<...
$(CC) $(CompilerFlagsC) $(INCLUDES) -c $< -o $@


obj/%.o: %.cpp
@echo ~~~~ Generating Deps
$(CC) $(CompilerFlagsCPP) $(INCLUDES) -MM -MF $(subst .o,.d,$@) -MP -MT $@ $<
@echo ~~~~ Compiling $<...
$(CC) $(CompilerFlagsCPP) $(INCLUDES) -c $< -o $@


%.o : %.s

%.o : %.c

%.o : %.cpp


%.d: ;

-include $(DEP_C)
-include $(DEP_CPP)

clean:
rm -f $(OBJ_C)
rm -f $(DEP_C)
rm -f $(OBJ_CPP)
rm -f $(DEP_CPP)

rm -f $(GAME_PLATFORM)

команда для компиляции файла
Code
1
clang -Wall -msse2 -mfpmath=sse  -pthread -fvisibility=hidden -fno-stack-protector  -D_REENTRANT -ggdb -O2 -DDEBUG    -I source -I source/project_independent -I source -I source/network -I source -I source/message_handlers -I source -I source/asset_manager -I source -I source/debug -I source -I source/third_party/gl3w/src -I source/third_party/gl3w/include/GL -I source/third_party/gl3w/include/KHR -I source/third_party/imgui -I source/core_data -I source -I source/platform/platform_linux -I source/platform -I source -I source/cache_storage -I source/cache_storage/cache_persistent -I source -I source/ui -I source/source_lib -I source/source_lib/linux_console -I source/source_lib -I source/source_lib/platform_filesystem -I source/source_lib/platform_memory -I source/source_lib/third_party -I source/source_lib/third_party/STB -I source/source_lib/third_party/parg -I source/source_lib/third_party/debug_break -I source/source_lib/third_party/STB_OLD -I source/source_lib/third_party/handmademath -I source/source_lib/third_party/libs -I source/source_lib/third_party/endianness -I source/source_lib -I source -I source/renderer/renderer_opengl -I source/renderer -I source -I source_binary/glfw/GLFW -I source_binary/openjpeg-2.5/include -I source_binary/sdl2-64/include/SDL2 -c source/network/network_pcap_packets_source.c -o obj/source/network/network_pcap_packets_source.o
но если я скопирую этот файл в другую директорию (со всем путём ) то этой же командой всё компилируется.
а в оригинальном каталоге при попытке скомпилировать - ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2022, 13:34
Помогаю со студенческими работами здесь

Про добавление заголовочных файлов в заголовочных файлах
В который раз эта вещь засовывает мозги в блендер! Я про то, что не могу однозначно запомнить (основываясь на моих знаниях о директиве...

Пишет, что ошибка в идентификации SWAP, что можно сделать? Программа выполняет гномье сортировку
// A C++ Program to implement Gnome Sort #include &lt;stdio.h&gt; using namespace std; // A function to sort the algorithm using...

Не выполняется простейшая программа, пишет что ошибка
Вот сам текст: #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; int main() { int now; int need; int cost;

Пишет что программа выдает неверный ответ. Где ошибка и есть ли она вообще
Задача: Бизнесмен Василий после прочтения известной книги решил открыть новый бизнес — отгружать апельсины бочками. Партнёрам важно...

Ошибки в заголовочных файлах
Добрый день. Необходимо написать программу копирования нескольких файлов в стандартный вывод (код взят из книги &quot;Гальченко В.Г....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru