2013-04-21 5 views
2

Сначала я установить SCTP на Ubuntu 12,04
Суды APT-получить установку libsctp-DEV lksctp-инструменты
Затем в моем файле .c, я включаю:Почему я не смог скомпилировать программу sctp в Linux?

#include <netinet/in.h> 
#include <netinet/sctp.h> 
#include <sys/socket.h> 
#include <stdlib.h> 
#include <unistd.h> 

Howerver, когда я скомпилирован с GCC , результат:

undefined reference to `sctp_recvmsg' 
undefined reference to `sctp_get_no_strms' 
undefined reference to `sctp_sendmsg' 

Что не так?

+0

Показать команду компиляции, а также часть вашего исходного кода. –

+0

Показать команду 'gcc', которую вы используете для компиляции вашей программы. Помните, что порядок аргументов 'gcc' имеет значение. –

+0

Gcc temp.c -o temp – huaxz1986

ответ

4

Если вы действительно компилируете с помощью gcc temp.c -o temp, то вы не связываете никакие библиотеки (кроме значения по умолчанию libc.6.so), и вам нужен дополнительный аргумент gcc; возможно, попытаться скомпилировать с

gcc -Wall -g temp.c -lsctp -o temp 

После того, как ваша программа отлажена с помощью gdb отладчика и вы считаете, что это ошибка бесплатно, вы можете попросить компилятор оптимизировать его с помощью

gcc -Wall -O2 temp.c -lsctp -o temp 

Порядок аргументов программы для gcc важен и значителен.

+0

Это -sctp, not -lscpt.Спасибо, это работает! – huaxz1986