в том числе файлы заголовков на C и компиляция

Я работаю над проектом с открытым исходным кодом под названием snort , который написан на C под Linux. Я правильно открыл проект в netbeans, и теперь я собираюсь внести некоторые изменения в этот исходный код. Папка src программы содержит несколько папок, а также каждая папка имеет несколько папок. Я слышал, что netbeans может генерировать make-файлы. Я делаю некоторые изменения в файлах src в папке XFolder и хочу использовать функцию библиотеки в другой папке в моем проекте (YFolder ). Я включил файл.h и правильно использовал функцию.

#include"../YFolder/lib.h"

Теперь, когда я могу скомпилировать программу, все в порядке, но когда я использую динамические библиотеки ".so (общие объектные файлы )", созданные в процессе make; и запускаю программу, я вижу ошибку, которая означает, что функция, которую я использовал из другой папки, не определена, и вижу эту ошибку; (sfxhash _new — это имя внешней функции, которую я назвал ).

libsf _sip _preproc.so :undefined symbol :sfxhash _new

Я также отредактировал Makefile.am и добавил исходники этого пакета(../YFolder/lib.c and lib.h); Но не эффективно. Кто-нибудь может мне помочь?

РЕДАКТИРОВАТЬ:

Я в папке src/dynamic -preprocessor/sip Я хочу использовать функцию в файле :src/sfutil/sfxHash.c имя функции sfxhash _новое (......... )Я правильно включил sfxHash.h. Я внес некоторые изменения в свой Makefile.am, но основной makefile такой.

Мой файл Makefile.am:

## $Id
AUTOMAKE_OPTIONS=foreign no-dependencies

INCLUDES = -I../include -I${srcdir}/../libs -I$(srcdir)/includes

libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor

lib_LTLIBRARIES = libsf_sip_preproc.la

libsf_sip_preproc_la_LDFLAGS = -shared -export-dynamic -module @XCCFLAGS@
if SO_WITH_STATIC_LIB
libsf_sip_preproc_la_LIBADD =../libsf_dynamic_preproc.la
else
nodist_libsf_sip_preproc_la_SOURCES = \
../include/sf_dynamic_preproc_lib.c \
../include/sf_ip.c \

endif

libsf_sip_preproc_la_SOURCES = \
spp_sip.c \
spp_sip.h \
sip_config.c \
sip_config.h \
sip_parser.c \
sip_parser.h \
sip_dialog.c \
sip_dialog.h \
sip_roptions.c \
sip_roptions.h \
sip_utils.c \
sip_utils.h \
sip_debug.h \
../include/sfxhash.c \   -----------------> I have copied src files in this dictionary
../include/sfxhash.h     ------------------>

EXTRA_DIST = \
sf_sip.dsp

all-local: $(LTLIBRARIES)
    $(MAKE) DESTDIR=`pwd`/../build install-libLTLIBRARIES

5
задан sajad 6 May 2012 в 04:22
поделиться