связать статическую библиотеку с заголовками с помощью компилятора Green Hills - PullRequest
1 голос
/ 14 марта 2019

У меня есть статическая библиотека .a с несколькими заголовочными файлами.Я хочу связать его с .o файлами в двоичный файл, используя компилятор Green hills.Я получаю ошибку:

[elxr] (ошибка # 412) неразрешенных символов.

Я пытаюсь указать путь к заголовочным файлампредоставление -I filepath компоновщику.

Однако, похоже, это не сработает.

Обновлено с кодом.

# Recipe for linking
__GHSRH850_ERRALL += $(__GHSRH850_TARGETERR)
GHSRH850_LIB = SRC\MCU\DROME\RGL\libd1mx_rh850_ghs.a
$(GHSRH850_TARGETEMU): $(__GHSRH850_OBJS) $(GHSRH850_LSCRIPT) $(GHSRH850_LIB) \
                      $(CORE_MAKPREREQS) | __GHSRH850_DIRS
    $(call CORE_REPORTFILE,Linking,$(@F))
    $(eval __GHSRH850_ERRDONE += $(__GHSRH850_TARGETERR))
    $(GHSRH850_LD)                       \
       $(GHSRH850_LSCRIPT)                                                            \
       -o $@                                                                          \
       $(GHSRH850_LIB)                                                  \
       $(__GHSRH850_OBJS)                                                            \
       $(GHSRH850_LFLAGS)                                                             \
       > $(__GHSRH850_TARGETERR)

Файл make довольно большой, поэтому яне могу поставить все это здесь.В основном библиотека добавляется с помощью:

GHSRH850_LIB = file\path\to\libname.a

В флагах добавлен путь к заголовку файла с:

GHSRH850_LFLAGS += -I file\path\to\headers

Другие описания:

GHSRH850_LFLAGS - Флажки компоновщика

GHSRH850_LSCRIPT - Файл сценария компоновщика

__GHSRH850_OBJS - Список объектных файлов

Компилятор, который использует ccrh850.exe.

Код ошибки:

[elxr] (error #412) unresolved symbols: 35
_R_UTIL_DHD_Init    from drglgmm_dhd.o
_R_UTIL_DHD_Config  from drglgmm_dhd.o
_R_DEV_SQRTF    from libd1mx_rh850_ghs.a(r_drw2d_main.o)
_R_VDCE_Sys_HsyncActLevelSet    from libd1mx_rh850_ghs.a(r_vdce_api.o)

1 Ответ

0 голосов
/ 24 марта 2019

Спасибо всем за быстрый ответ.Проблема была решена.В основном ошибки возникали из-за того, что другие исходные файлы не компилировались, потому что отсутствовали заголовки, и компилятор не выдавал никаких уведомлений об этом.Таким образом, когда все объектные файлы скомпилированы ошибки пошли.Правильный способ добавить библиотеку - либо добавить путь, как я, либо использовать -lname, как упомянуто Иэном Эбботом.

...