none
VS 2019, C&Cpp RRS feed

  • Вопрос

  • Всем привет!

    У меня на компе существует скачанная 
    библиотека C-исходников c h-файлами заголовков.
    Задача - написать Cpp-программу,
    использующую библиотечные  модули. 
    Создаю Cpp-проект,
    в "Исходных файлах" добавляю Cpp-головной модуль,
    в "Заголовочных файлах" добавляю h-файл,
    в котором перечислены необходимые C-модули.
    include "file.h" - в головном модуле вписываю соответствующий include,
    Запускаю построитель - получаю список 
    unresolved external symbols,
    неразрешенных внешних символов,
    где указаны библиотечные C-модули,
    на которые ссылается моя Cpp-программа.
    В "Исходные файлы" добавляю перечисленные построителем C-модули,
    опять запускаю построитель - опять получаю список модулей,
    на которые ссылаются модули, добавленные перед этим.

    Вопрос.
    Почему построитель требует вручную включать в проект
    библиотечные модули, перечисленные в h-файле?
    Это нормально или можно каким-то образом
    этот процесс автоматизировать?
    9 апреля 2021 г. 7:45

Ответы

  • Заголовочные файлы содержат объявления функций. Чтобы использовать функцию, нужна ее реализация. Реализация может быть в:

    1. Исходниках

    2. Статической библиотеке

    3. Динамической библиотеке

    Если у вас нет ни второго, ни третьего - то да, вам нужно включать в свой проект исходники всех используемых функций. Автоматизировать может и можно, но думаю, все таки предпочтительный способ это собрать библиотеку и подключать бинарник. Возможно, где-то есть руководство, как сделать это для вашей библиотеки. 

    • Помечено в качестве ответа QazRdx 9 апреля 2021 г. 9:33
    9 апреля 2021 г. 9:00

Все ответы

  • Заголовочные файлы содержат объявления функций. Чтобы использовать функцию, нужна ее реализация. Реализация может быть в:

    1. Исходниках

    2. Статической библиотеке

    3. Динамической библиотеке

    Если у вас нет ни второго, ни третьего - то да, вам нужно включать в свой проект исходники всех используемых функций. Автоматизировать может и можно, но думаю, все таки предпочтительный способ это собрать библиотеку и подключать бинарник. Возможно, где-то есть руководство, как сделать это для вашей библиотеки. 

    • Помечено в качестве ответа QazRdx 9 апреля 2021 г. 9:33
    9 апреля 2021 г. 9:00
  • Понял, спасибо!
    9 апреля 2021 г. 9:32