Eclipse CDT - связать отдельную библиотеку с пространством в пути к файлу

Используя Eclipse CDT, я пытаюсь связать один файл библиотеки (.lib) в моем проекте.

Во время компиляции, в результате символа пробела в пути к файлу, путь разделяется вокруг пробела, в результате чего файл не может быть найден и предотвращает успешное выполнение компиляции. Эта строка выполнения генерируется Eclipse.

g++ -static-libgcc -static-libstdc++ -o "Test.exe" "src\\Test.o" -lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib 
g++: error: Files/Java/jdk1.7.0_15/lib/jvm.lib: No such file or directory

В целом у него есть проблема с созданием опции библиотеки для компиляции:

-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib

Я пробовал как окружать путь в кавычках, так и добавлял каталог пути как путь к библиотеке, но параметр -l в обоих случаях искажен.

Как я могу успешно добавить библиотеку с пробелом в свой путь в Eclipse CDT?

1 ответ

  • Вы должны заключить свой путь, который имеет пробелы, с qoutes.

  • Вероятно, вы должны указать только имя библиотеки (то есть jvm) на вкладке "Библиотеки". Затем укажите "C:/Program Files/Java/jdk1.7.0_15/lib" на вкладке "Библиотечные пути".

Дело в том, что "-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib" - это правильное формирование параметра, поскольку интерпретатор команд будет рассматривать его как один параметр, но катит цитаты.

Итак, когда вы вводите g++ "-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib" в cmd, аргумент, переданный в g++, будет -lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib без кавычек.

Однако -l является недопустимой опцией для gcc. Вы можете использовать g++ или g++ -L<path-to-library-dir> -l</path-to-library-dir>.

Таким образом, действительными параметрами будут

g++ <..> "src\\Test.o" "-LC:/Program Files/Java/jdk1.7.0_15/lib" -ljvm

licensed under cc by-sa 3.0 with attribution.