Eclipse C ++ с Mingw Comiler не может построить пример регулярного выражения Boost, можно найти файлы библиотеки .a - PullRequest
1 голос
/ 18 мая 2010

Я пытаюсь построить пример регулярного выражения в Eclipse, используя Mingw на Vista. Я построил boost ok с mingw, так как есть файлы библиотеки XXXX.a. Я мог бы собрать / скомпилировать первый пример буста, который не требует какой-либо из скомпилированных буст-библиотек.

Когда я компилирую пример регулярного выражения, я получаю ошибку компоновщика, говорящую, что он не может найти файл библиотеки. Я пробовал разные имена файлов libray, например, не указывать расширение .a, не указывать префикс lib и т. Д.

Теперь интересно то, что если я оставлю расширение библиотеки и переименую файл библиотеки в XXX.lib, он будет работать и работать нормально.

Так почему же он не может прочитать файл библиотеки .a?

Должно быть, это где-то мои настройки, но я не знаю, где и что устанавливать.

Из того, что я прочитал, все в порядке, связывая файл .a, кроме меня: (

Заранее спасибо, Ким

1 Ответ

0 голосов
/ 18 мая 2010

Это похоже на эту тему ?

Я без проблем собрал стандартный Hello World и добавил для практики второй статический библиотечный проект "Утилиты". Я сделал следующее:

  • проверил "utilities" как ссылку на проект для Hello World.
  • добавлено libutilities как библиотека в список библиотек проекта "Hello World".
  • добавлен "${workspace_loc:/utilities/Debug}" в качестве пути к каталогу для библиотек. (libutilities.a живет там). (также пробовал версию этой файловой системы.)
  • Очистка и сборка приводит к следующей ошибке:
g++ -LC:\projects\fargo\utilities\Debug -ohello_world.exe src\hello_world.o
  src\c_template_class.o -llibutilities
C:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe:  
  cannot find -llibutilities
collect2: ld returned 1 exit status

Чтобы связать библиотеку libutilities.a, параметр командной строки должен быть -lutilities

...