Как использовать динамический компоновщик gcc

Если вы используете драйверы от производителя видеокарты, в их драйвере может быть ошибка, из-за которой карта перегревается при просмотре видео.

Если вы используете проприетарный драйвер для видеокарты, попробуйте драйвер с открытым исходным кодом, и наоборот.

Поставщики графических карт, поддерживающие Windows или Linux в лучшую или худшую сторону, не виноваты ни в одной из ОС.

1
17.02.2020, 19:38
2 ответа

Вам необходимо сообщить компилятору, что aсуществует вне исходного файла. Для этого объявите его какextern:

#include <stdio.h>

extern int a;

int main(void)
{
    printf("helloworld %d", a);
    return 0;
}
1
28.04.2021, 23:23

Это не имеет ничего общего с динамической , та же проблема будет и со статической компоновкой.

Проблема в том, что вы его не объявили. Однако вы определили его. Вам нужно объявить его с помощью extern int a;, прежде чем он будет использоваться.

Вы должны сделать это в файле с именемlib.h(с тем же именем, что и у единицы компиляции, и включить его изlib.c(для проверки )и из main.cдля его использования.

main.c

#include "lib.h"
#include <stdio.h>
int main(){
    printf("helloworld %d",a);
    return 0;
}

lib.h

extern int a;

lib.c

#include "lib.h"
/*other includes that we need, after including own.h*/
/*so we can catch missing dependencies*/
int a=0;
0
28.04.2021, 23:23

Теги

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