2016-01-28 1 views
0

У меня есть файл с расширением .a и file.h, которые представляют функции в файле .a.Как мне вызвать методы из файла .A в проекте C?

Как я могу вызвать функции в файле .a из нового проекта C?

Я использую визуальную студию, и я загрузил ее по всему Интернету и не нашел что-то полезное.

Благодаря

ответ

1
#include 'xxx.h" 

Затем в коде, предполагая, что ABC является функцией в библиотеке, просто назвать его: INT х = ABC();

Вам также необходимо связать свою программу с библиотекой.

+0

Поиск в Интернете для «visual studio add library», и вы получите тонны хитов. – FredK

+0

Поддерживает ли Visual Studio формат .a? Предположительно, файлы, подобные этому, нужно обрабатывать, чтобы они имели расширение .lib ... – rlam12

1

Есть два шага, используя внешнюю библиотеку в вашем визуальном проекте студии: вы должны удовлетворить как компилятора и линкера.

Компилятор

Это так просто, как в том числе файл заголовка в приложении; либо поместите файл заголовка непосредственно в исходное дерево, либо, если он живет в другом каталоге, добавьте его в свой путь include (щелкните правой кнопкой мыши по проекту-> «Свойства», выберите «C/C++» и добавьте каталог в папку « Дополнительно включают в себя свойства каталогов.

Теперь у вас должно быть #include "myexternallibrary.h", что позволит компилятору распознавать функции библиотеки.

Linker

Вообще говоря, чтобы удовлетворить линкер, инструкции очень похожи на файл заголовка выше: дамп библиотеки бинарного непосредственно в дереве проекта и ссылаться на него через свойства-> Linker-> Input -> «Дополнительные зависимости» (например, mylibrary.a); если библиотека живет в каталоге, внешнем по отношению к вашему дереву проектов, и вы не хотите включать полный путь к библиотеке в этом свойстве, вы можете добавить каталог в путь поиска компоновщика: Properties-> Linker-> General -> «Дополнительные библиотечные каталоги».

Следующий бит, где все становится немного сложнее, так как вы явно указаны файл библиотека был . формат а, а не .lib.

. Файлы библиотеки обычно являются результатом инструментальной комбинации MinGW, которая может работать или не работать корректно с помощью инструментальной цепочки Visual Studio. См. Дополнительную информацию: From MinGW static library (.a) to Visual Studio static library (.lib)

Возможно, вам повезет, и использование библиотеки стандартного времени выполнения C совместимо с MSVC и MinGW (или любой другой инструментальный файл, сгенерированный с .a-файлом).

В качестве примечания, пожалуйста, убедитесь, что библиотека, которую вы пытаетесь использовать, на самом деле не является библиотекой Linux, так как расширение библиотеки .a также является по умолчанию для GCC (наиболее распространенным компилятором C для Linux) , и он не будет совместим в среде Windows.

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