
Открыть
Воронцов Е.В. писал(а):
Здравствуйте!
Пишу математику. Решил использовать clib.dlb.
При использовании atan2(еще косинус и синус проверял) все работает.
При использовании sqrtd сборка завершается ошибкой.
Помогите разобраться.
Вот сообщения(.тхт на форум нельзя прилагать поэтому привожу тут) :
немного пропускаю...
Warning[C951] ../main.c(108,10): return type of function "main" must be "int"
../main.c: 300 word(s) / 204 instruction lines(s), 0 source line(s), 0.0 second(s), 0 error(s), 1 warning(s)
'Finished building: ../main.c'
' '
'Building target: target-build'
'Invoking: Linker'
C:\Milandr\CM-LYNX.1.06.03\toolchain\Bin\mclink-tsh -L "C:\Milandr\CM-LYNX.1.06.03\toolchain\Lib" "C:\Milandr\CM-LYNX.1.06.03\toolchain\Lib\clib.dlb" "C:\Milandr\CM-LYNX.1.06.03\toolchain\1967VN044\Lib\Release\hal_1967VN044.dlb" -MD __1967VN044__ -MM -Mo link.deps -od . -T ../OSV(1967BH044)_ADC_MES.ldf -i "C:\Milandr\CM-LYNX.1.06.03\toolchain\Inc" -Map OSV(1967BH044)_ADC_MES.map -o "OSV(1967BH044)_ADC_MES.dxe" ./meshures_kih/srs/chanel_correction.doj ./meshures_kih/srs/drift_nl.doj ./meshures_kih/srs/filter_kih.doj ./meshures_kih/srs/param_calc.doj ./drv_extern/LVDS_dac_adc/src/hal_lvds_dac_adc.doj ./drv_extern/AcuHolod/src/acuholod.doj ./drv_extern/5101HB015/src/5101HB015.doj ./drv_extern/5101HB015/src/5101HB015_SPI_1967VC3.doj ./board/srs/ADC1967BH044_OSV.doj ./board/srs/ADC1967BH044_spi_OSV.doj ./board/srs/init.doj ./board/srs/interrupt_handlers.doj ./1967VN044/HAL/src/hal_arinc.doj ./1967VN044/HAL/src/hal_audio.doj ./1967VN044/HAL/src/hal_camera.doj ./1967VN044/HAL/src/hal_dma.doj ./1967VN044/HAL/src/hal_gpio.doj ./1967VN044/HAL/src/hal_gptimer.doj ./1967VN044/HAL/src/hal_i2c.doj ./1967VN044/HAL/src/hal_interrupt.doj ./1967VN044/HAL/src/hal_lcd.doj ./1967VN044/HAL/src/hal_link.doj ./1967VN044/HAL/src/hal_milstd.doj ./1967VN044/HAL/src/hal_pll.doj ./1967VN044/HAL/src/hal_rtc.doj ./1967VN044/HAL/src/hal_spi.doj ./1967VN044/HAL/src/hal_sys.doj ./1967VN044/HAL/src/hal_timer.doj ./1967VN044/HAL/src/hal_uart.doj ./1967VN044/HAL/src/hal_updown.doj ./main.doj
Linker for Lynx Version 1.01.180122
Copyright (C) 2017 JSC "ICC Milandr"
../OSV(1967BH044)_ADC_MES.ldf preprocessed Ok
Mapping sections for processor P0 ... Ok
Error[L306]: Unresolved external 'errno' referenced from 'C:\Milandr\CM-LYNX.1.06.03\toolchain\Lib\clib.dlb [SQRT.doj]'
Link complete: 1 error(s), 0 warning(s)
make: *** [makefile:34: target-build] Error 2

Закрыть
К сожалению, библиотека clib.dlb не содержит глобальную переменную "errno". Поэтому для вызова функции sqrtd (long double) необходимо её объявить:
volatile int errno;
Эта проблема применима только для библиотеки clib.dlb из состава toolchain Milandr. При использовании этой же библиотеки из состава toolchain LLVM данной проблемы нет. Мы рекомендуем использовать набор инструментов именно toolchain LLVM, поскольку в одной из будущих версий среды toolchain Milandr будет исключен из комплекта поставки CM-LYNX.
_________________
Отдел технической поддержки
support@milandr.ru