Как сделать статическое связывание в Eclipse CDT?

Я пытаюсь статически связать стороннюю библиотеку C на С++.

Мне удалось сделать это в Visual Studio, просто указав файл .lib в параметрах ввода компоновщика. Однако, когда я делаю эквивалент в CDT (Свойства проекта -> Настройки -> Компоновщик MinGW C++ -> Библиотеки), я получаю бесконечное количество ошибок "неопределенная ссылка на..." при попытке сборки.

Есть ли что-нибудь еще, что мне нужно сделать, чтобы получить статическую ссылку в CDT?

Спасибо, Алан


person Alan Spark    schedule 24.08.2012    source источник
comment
Вы хотите связать библиотеку, которая является результатом другого проекта в вашей рабочей области, или библиотеку, предоставленную вашей средой MinGW?   -  person PeterSom    schedule 24.08.2012
comment
Я не уверен, но это может быть потому, что ваша библиотека скомпилирована с использованием VC++. Вероятно, вам понадобятся бинарные файлы, скомпилированные MinGW.   -  person enobayram    schedule 24.08.2012
comment
Кроме того, это сторонняя библиотека. У меня есть файл .lib для статической компоновки и еще один .lib и .dll для динамической компоновки. Я могу сделать динамическую компоновку в Eclipse, но не статическую.   -  person Alan Spark    schedule 24.08.2012


Ответы (1)


Если эта сторонняя библиотека создана для среды Visual C и с компилятором Microsoft Visual Studio, возможно, вам не удастся связать ее с компиляторами MinGW.

Однако вы можете настроить Eclipse CDT в Windows для компиляции вашего кода с помощью компилятора командной строки Visual Studio CL.EXE, и тогда все должно работать так, как вы ожидали.

Это сильно зависит от того, какую версию Eclipse CDT вы используете, потому что подключаемый модуль настроек компилятора Microsoft является лишь частью более новых версий (я думаю, что это начиная с Helios).

person PeterSom    schedule 24.08.2012
comment
Я подозреваю, что это была проблема, но переход на компилятор Visual Studio был для нас нецелесообразным, поэтому мы остановились на динамическом связывании, которое работает для нас. - person Alan Spark; 29.08.2012