Я использую следующий make файл для создания приложения, которое ссылается на libbson и libmongoc :
CURRENT_DIR=$(shell pwd)
INC=-I/usr/local/include/libbson-1.0
INC+=-I/usr/local/include/libbson-1.0/bson
INC+=-I/usr/local/include/libmongoc-1.0/mongoc
INC+=-I$(CURRENT_DIR)/thpool
INC+=-I$(CURRENT_DIR)/cJSON
LIBS=/usr/local/lib/
all : request.o db_manager.o main.o
+$(MAKE) -C cJSON all
+$(MAKE) -C thpool all
mkdir build
mv cJSON/*.o build/
mv thpool/*.o build/
mv request.o build/
mv db_manager.o build/
mv main.o build/
cp -R libs build/ #make copy of local static libs
cd build && \
cc $(INC) -w -pthread main.o request.o db_manager.o cJSON.o cJSON_Utils.o \
thpool.o $(LIBS)libbson-1.0.so $(LIBS)libmongoc-1.0.so \
-o ghost-chat
request.o : request.c
cc -w $(INC) -c request.c
db_manager.o : db_manager.c
cc -w $(INC) -c db_manager.c
main.o : main.c
cc -w $(INC) -c main.c
clean :
rm -rf build
Приложениесобирается правильно, но во время выполнения, когда я вызываю функцию libmongoc , она возвращает следующую ошибку:
./build/ghost-chat: symbol lookup error: ./build/ghost-chat: undefined symbol: mongoc_collection_insert_one
Правильно ли я связываю libmongoc-1.0.так библиотека?Я собрал драйвер libmongoc из последней версии tarball - отсюда установочный каталог / usr / local / *.Я успешно протестировал приложение - используя XCode на macOS, используя его собственную систему сборки, но я написал этот файл make , чтобы разрешить сборку на нашем * сервере Nix.
Любой совет будетс благодарностью.