2015-01-19 1 views
0

Я разработчик и инженер Android в компьютерном зрении.Компиляция командной строки с библиотеками в Linux с GCC

Я делаю проект компьютерного зрения с OpenCV на Mac, с OS X 10.9.5 в Xcode, и это кросс-платформенный, поэтому то, что я делаю, это командная строка для компиляции в linux и доступа к это (сервер).

Проблема, которая возникает у меня, заключается в том, что библиотека JSONCPP не распознается. Я скомпилировать его с:

г ++ -I/дома/ec2 пользователей/проекта/OpenCV/включать/249include/включить/ -L/дом/ec2 пользователей/проект/OpenCV/сборки/Библиотека/- L/home/ec2-user/project/lib/-I/home/ec2-user/project/jsoncpp-master/include/-g -o binary main.cpp facerecognition.cpp utils.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui - lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_stitching -lopencv_flann -w -std = с ++ 11

Какая часть продукции является:

/home/ec2-user/project/utils.cpp:2475: не определено ссылка на `Json :: Value :: Value (Json :: ValueType)»

/дома/ec2 пользователей/проект/utils.cpp: 2478: не определено ссылка на `Json :: Value :: Value (Json :: ValueType)»

/home/ec2-user/project/utils.cpp:2479: не определено ссылка на `Json :: Значение :: Значение (Json :: ValueType) '

/home/ec2-user/project/utils.cpp:2484: не определено ссылка на `Json :: Значение :: Значение (целое)'

/home/ec2-user/project/utils.cpp:2484: не определено ссылка на `Json :: Value :: Append (Json :: Значение сопз &)»

/дома/ec2 пользователь/проект/utils.cpp: 2484: не определено ссылка на `Json :: Value :: ~ Value()»

/home/ec2-user/project/utils.cpp:2486: не определено ссылка на `Json: : Значение :: Значение (станд :: строка Const &)»

/home/ec2-user/project/utils.cpp:2486: не определено ссылка на` JSon :: Валу e :: operator [] (char const *) '

/home/ec2-user/project/utils.cpp:2486: undefined ссылка на `Json :: Value :: operator = (Json :: Value) '

/home/ec2-user/project/utils.cpp:2486: не определено ссылка на `Json :: Value :: ~ Значение()'

/дома/ec2 пользователей/проекта/Utils .cpp: 2487: не определено ссылка на `Json :: Значение :: Значение (Json :: Значение сопз &)»

/home/ec2-user/project/utils.cpp:2487: не определено ссылка на `Json :: Value :: operator [] (char const *) '

/home/ec2-user/project/utils.каст: 2487: не определено ссылка на `Json :: Значение :: оператора = (Json :: Value)»

/home/ec2-user/project/utils.cpp:2487: не определено ссылка на `Json: : Значение :: ~ Value() '

/home/ec2-user/project/utils.cpp:2488: не определено ссылка на `Json :: Value :: Append (Json :: Значение сопз &)'

/home/ec2-user/project/utils.cpp:2479: не определено ссылка на `Json :: Value :: ~ Value()»

/рупор е/ec2 пользователей/проект/utils.cpp: 2489: не определено ссылка на `Json :: Value :: ~ Value()»

/home/ec2-user/project/utils.cpp:2491: не определено ссылка на `Json :: StyledWriter :: StyledWriter()»

/home/ec2-user/project/utils.cpp:2492: не определено ссылка на `Json :: StyledWriter :: записи (Json :: Value Const &) '

/home/ec2-user/project/utils.cpp:2475: не определено ссылка на `Json :: Value :: ~ Value()'

/home/ec2-user/project/utils.cpp:2484: не определено ссылка на `Json :: Value :: ~ Value()»

/home/ec2-user/project/utils.cpp:2486 не определено ссылка на `Json :: Value :: ~ Value()»

/home/ec2-user/project/utils.cpp:2487: не определено ссылка на `Json :: Value :: ~ Value () '

/home/ec2-user/project/utils.cpp:2479: не определено ссылка на `Json :: Value :: ~ Value()'

я должен отметить, что я составил это для Android (NDK), прежде чем с этим Makefile:

local_path: = $ (назовем мой-Dir)

включают $ (CLEAR_VARS)

OPENCV_CAMERA_MODULES: = выкл

OPENCV_INSTALL_MODULES: = на

включают $ (local_path) /jsoncpp/Android.mk

Включает /Users/rafaelruizmunoz/Desktop/AndroidDevelopment/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.тк

OPENCV_LIB_TYPE: = ШАРЕД

LOCAL_C_INCLUDES + = $ (local_path)

LOCAL_C_INCLUDES + =/Users/rafaelruizmunoz/OpenCVtry/

LOCAL_C_INCLUDES + = /Users/rafaelruizmunoz/Desktop/RD/OpenCVtry/Библиотеки/jsoncpp-мастер/включают

local_path: = JNI

LOCAL_ ALLOW_UNDEFINED_SYMBOLS: = True

LOCAL_MODULE: = libXYZ

LOCAL_MODULE_NAME: = mylibXYZ

LOCAL_SRC_FILES: = facerecognition.cpp androidClass.cpp main.cpp utils.cpp helper.cpp lbp.cpp

LOCAL_LDLIBS + = -llog -ldl

LOCAL_CPPFLAGS: = -std = C++ 11

LOCAL_CFLAGS: = -w

CFLAGS = -g -w -Wall -Wextra -std = C++ 11 -Wno-записи-строки ../../include/boost

LOCAL_SHARED_LIBRARIES: = libJsoncpp libopencv_java

включают $ (BUILD_SHARED_LIBRARY)

, которые работали отлично.

На моем компьютере он отлично компилируется. То, что я должен был сделать это JSONCPP Makefile с Xcode генератора и добавления в качестве проекта:

enter image description here

Но я получаю из ключей для компиляции в Linux.

Знаете ли вы, что делать? Спасибо заранее.

С уважением.

+0

Вы получаете ошибки компиляции 'utils.cpp', который чувствует себя больше как вы либо не хватает строка '# include' для материала JSON или (в зависимости от того, какие сообщения вы пропустили), это не поиск включенного файла. Не похоже, что у вас еще есть проблемы с соединением/библиотекой. – TripeHound

+0

Привет @TripeHound спасибо за ваш ответ.Я добавил новый: «-I/home/ec2-user/project/json /' .... получил другие ошибки. Решил их, но после этого я получаю те же ошибки, о которых я упомянул ....: \ –

+0

Не могу сделать больше, чем повторять предыдущие вопросы: имеет ли 'utils.cpp' соответствующую строку '# include' (s) и появились ли ранее ошибки об отсутствии каких-либо включенных файлов? – TripeHound

ответ

0

Это предположение основано на вашем Android Makefile, так как я не могу видеть "включены BUILD_SHARED_LIBRARIES", но я заметил, у вас есть:

"LOCAL_SHARED_LIBRARIES: = libJsoncpp libopencv_java"

I представьте, что вам понадобится «-lJsoncpp -lopencv_java» в командной строке g ++.

Вы должны быть уверены, что обе библиотеки были построены и могут быть найдены в одном из «-L» пути

 Смежные вопросы

  • Нет связанных вопросов^_^