2015-07-16 4 views
0

Я пытаюсь использовать UnitTest ++ для модульного тестирования. Я использую Eclipse Mars IDE.Eclipse Не удается найти библиотеку UnitTest ++

Я следил за Project-> Properties-> C/C++ Build-> Tool Settings и включал полный путь «C: \ Users \ XXX \ workspace \ unittest-cpp-master \ UnitTest ++» в компиляторе GCC C++ (включает вариант) и "C:. \ Users \ XXX \ рабочее пространство \ UnitTest-CPP-мастер \ UnitTest ++ \ UnitTest ++ ч" в MinGW C++ Linker (опция библиотеки)

Когда я строю свой исходный код, он выдает ошибку

не может найти -lc:. \ Users \ XXX \ рабочее пространство \ UnitTest-CPP-мастер \ UnitTest ++ \ UnitTest ++ ч

Любые предложения по его устранению? ТИА

ответ

0

Вы видите ошибку компоновщика, говорит вам, компоновщик не может найти ни библиотеки, которая соответствует опции командной строки компоновщика:

-lC:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h 

библиотека, которая соответствует линкер вариант -lfoo будет называется libfoo.a или libfoo.so, если вы находитесь в unix-подобной системе или libfoo.a, foo.lib или foo.dll , если вы находитесь в Windows.

, конечно, ни одна из этих возможностей дает имя любого файла, который существует на вашем компьютере, если вы заменяете C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h для foo.

Вы сделали один и, возможно, две ошибки:

Вы добавили имя файла заголовка, C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++\UnitTest++.h, в библиотеке в связей. Файл заголовка ничего не означает для компоновщика. Библиотека связей - это двоичный файл , содержащий скомпилированный код, который компоновщик может комбинировать с другими двоичными файлами для создания программы. Библиотека , которую вы должны указать, - UnitTest++. Эта установка будет генерировать командную строку компоновщика варианта:

-lUnitTest++ 

, когда вы строите, а компоновщик будет искать файл библиотеки соответствия в каталогах , где он должен искать библиотеки.

По умолчанию компоновщик будет искать библиотеки в нескольких каталогах по умолчанию, в зависимости от вашей unix-подобной или Windows-системы. Если вы не установили свою библиотеку UnitTest ++ в одном из этих мест, вам также необходимо сообщить компоновщику имя каталога, в котором он должен искать эту библиотеку. Так что если, только, например, библиотека вашей UnitTest ++ является:

C:\Users\XXX\workspace\unittest-cpp-master\lib\UnitTest++.a 

, то вам нужно сделать другие настройки в IDE.Перейдите к Свойства Проекта вашего проекта ->C++ Строят -> Настройки ->GCC C++ Linker ->Библиотеки ->Библиотека путь поиска, и добавить C:\Users\XXX\workspace\unittest-cpp-master\UnitTest++. Эта установка будет генерировать командной строки компоновщика вариант:

-LC:\Users\XXX\workspace\unittest-cpp-master\lib 

при сборке.

Если вы используете IDE такого Eclipse, чтобы контролировать GNU инструментов для сборки без понимания того, как в основном командной строки инструментов работа и какие виды файлов они работают на то, что я боюсь, что вы уверены, что совершать грубые ошибки, как это: here is very quick cure for that. Если это приводит к заблуждению при работе с MinGW GCC, обратитесь к the MinGW documentation и/или the GCC documentation

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