#java #linker #linker-errors #static-linking #gcj
#java #компоновщик #компоновщик -ошибки #статическое связывание #gcj
Вопрос:
Я пытаюсь статически связать приложение GCJ, и, похоже, где-то есть какая-то неправильная конфигурация. Я просто использую стандартную установку gcj на natty, и у меня установлены как libgcj11, так и libgcj11-dev.
Мое тестовое приложение:
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
Я делаю:
gcj -static-libgcj --main=HelloWorldApp HelloWorldApp.java
затем я получаю следующую ошибку
/usr/bin/ld: cannot find -lgcj
collect2: ld returned 1 exit status
Кто-нибудь знает, как это исправить?
Комментарии:
1. Очевидно, что GCJ существует не везде, но я бы предостерег вас от его использования в любом случае. Это не Java; это не завершено; вероятно, никогда не будет; это несовместимо во многих отношениях.
Ответ №1:
Дистрибутивы обычно не поставляют libgcj.a. Статическое связывание не очень хорошо работает с gcj, в любом случае, в основном потому, что не все зависимости классов могут быть найдены — скомпилированные ресурсы, а также использование отражения в основной библиотеке приводят к тому, что во время соединения что-то пропадает, если вы не принимаете специальных мер.не забудьте связать их вручную.
Комментарии:
1. Хорошо, я опоздал на этот разговор, но я столкнулся с той же проблемой. Если бы кто-то захотел попробовать связать, где можно было бы получить libgcj.a?