Библиотека / функции Cmocka не найдены в Ubuntu 18.04 - PullRequest
0 голосов
/ 25 октября 2019

Я взял архив с исходным кодом Cmocka и установил его в Ubuntu следующим образом:

$ sudo make install
[sudo] password for vc: 
[  9%] Built target cmocka
[ 22%] Built target allocate_module_test
[ 31%] Built target simple_test
[ 45%] Built target assert_module_test
[ 59%] Built target assert_macro_test
[ 72%] Built target waiter_test_wrap
[ 81%] Built target proc_uptime
[ 90%] Built target uptime
[100%] Built target test_uptime
Install the project...
-- Install configuration: "Debug"
-- Installing: /usr/lib/x86_64-linux-gnu/pkgconfig/cmocka.pc
-- Installing: /usr/lib/x86_64-linux-gnu/cmake/cmocka/cmocka-config.cmake
-- Installing: /usr/lib/x86_64-linux-gnu/cmake/cmocka/cmocka-config-version.cmake
-- Installing: /usr/include/cmocka.h
-- Installing: /usr/include/cmocka_pbc.h
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libcmocka.so.0.7.0
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libcmocka.so.0
-- Installing: /usr/lib/x86_64-linux-gnu/libcmocka.so

Но я не могу запустить модульные тесты.

Поскольку точно такие же тесты выполняются в CentOS и ArchLinuxЯ уверен, что ничего не упускаю из-за кода, функций или команд. В сравнении с ArchLinux или CentOS нет изменений в коде, команде или конфигурации, которые я использую в Ubuntu.

Ошибка в Ubuntu:

$ cc -lcmocka -Wall -Wl,--wrap=supportedJavaVersion ../OE_src/incl/consts.h ../OE_src/mfdialg.c test_JavaDestinationPathDlgFunc.c 
/tmp/ccdd854z.o: In function `__wrap_supportedJavaVersion':
test_JavaDestinationPathDlgFunc.c:(.text+0x2e): undefined reference to `_check_expected'
test_JavaDestinationPathDlgFunc.c:(.text+0x46): undefined reference to `_mock'
/tmp/ccdd854z.o: In function `test_return_false':
test_JavaDestinationPathDlgFunc.c:(.text+0x86): undefined reference to `_expect_string'
test_JavaDestinationPathDlgFunc.c:(.text+0xa9): undefined reference to `_will_return'
test_JavaDestinationPathDlgFunc.c:(.text+0xd4): undefined reference to `_assert_int_equal'
/tmp/ccdd854z.o: In function `test_return_true':
test_JavaDestinationPathDlgFunc.c:(.text+0x10f): undefined reference to `_expect_string'
test_JavaDestinationPathDlgFunc.c:(.text+0x132): undefined reference to `_will_return'
test_JavaDestinationPathDlgFunc.c:(.text+0x15d): undefined reference to `_assert_int_equal'
/tmp/ccdd854z.o: In function `main':
test_JavaDestinationPathDlgFunc.c:(.text+0x1f6): undefined reference to `_cmocka_run_group_tests'
collect2: error: ld returned 1 exit status

_assert_int_equal, _cmocka_run_group_tests,_will_return и все другие имена функций (неопределенные ссылки) являются частью Cmocka. Я чувствую, как-то библиотеки Cmocka не связаны в Ubuntu.

Обратите внимание, что я получаю ту же ошибку в Ubuntu, даже когда использую apt для установки libcmocka0, libcmocka-dev и cmocka-doc. Пожалуйста, помогите.

Спасибо.

...