Как избежать конфликтов в заголовках Linux?

Я не знаю точно, что вы хотите, но команда sysctl предоставляет много информации. См. также здесь .

0
25.11.2020, 18:51
1 ответ

I'm trying to understand how Linux works and how to build modules.

При сборке модулей ядра не используются «стандартные» каталоги компилятора C; вместо этого см. /lib/modules/$(uname -r)/build.

  1. C программы не знают, где искать заголовки и библиотеки; препроцессор C и компилятор делают. Вы можете увидеть стандартные включаемые каталоги, используя

    gcc -xc -E -v - < /dev/null
    

    (замена -xcна -xc++для C++ )и каталоги поиска библиотеки с использованием

    gcc -print-search-dirs
    
  2. Конфликты не избегаются компилятором; это зависит от того, кто или кто запускает компилятор, чтобы убедиться, что пути поиска не содержат конфликтующих заголовков. Библиотеки не подключаются автоматически, вам нужно добавить библиотеки в команду компоновщика -строку(-lprocpsв вашем примере ); любая другая библиотека игнорируется. В обоих случаях при возникновении конфликтов компиляция и/или компоновка останавливаются с ошибкой.

1
18.03.2021, 22:47

Теги

Похожие вопросы