Ошибки компоновщика при компиляции против бойкого …?

Я рекомендовал бы установить procmail или некоторый другой почтовый процессор. Можно настроить его так все от Вас со строкой темы определенного волшебного пароля, который только Вы знаете, передаст содержание сценарию (который Вы могли затем выполнить).

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

2
16.12.2018, 06:18
1 ответ

бойкий не Ваша проблема. Это:

re.c:(.text+0xd6): undefined reference to `print_uppercase_words'

То, что это говорит, Вы вызываете функцию print_uppercase_words, но это не может найти его.

И существует причина. Посмотрите очень тесно. Существует опечатка:

void print_upppercase_words(const gchar *string)

После фиксации этого у Вас могла бы все еще быть проблема, потому что Вы указываете библиотеки перед модулями, которые требуют тех библиотек. Короче говоря, Ваша команда должна быть записана

gcc -o re re.o -lglib-2.0

так, чтобы -lglib-2.0 прибывает после re.o.

Таким образом, я записал бы Ваш Make-файл больше как это:

re.o: re.c
        $(CC) -I<includes> -o $@ -c $^

re: re.o
        $(CC) $^ -l<libraries> -o $@

На самом деле, если Вы устанавливаете правильные переменные, make поймет все это для Вас автоматически.

CFLAGS=$(shell pkg-config --cflags glib-2.0)
LDLIBS=$(shell pkg-config --libs glib-2.0)
CC=gcc

re: re.o
2
27.01.2020, 22:15
  • 1
    Мм - чертовски. Я зафиксировал опечатку, и мне все еще нашли ошибки в том, что раньше было print_upppercase_words (теперь только с 1 'p'). Ошибки, о которой сообщают, как неопределенная ссылка на ту функцию теперь не стало, но бойкие ошибки соединения все еще присутствуют. –  lucidquiet 01.04.2012, 21:41
  • 2
    Посмотрите мое обновление. Мое предположение - то, что необходимо поместить -lglib-2.0 после re.c или re.o. –  Mikel 01.04.2012, 22:05

Теги

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