Статическое связывание приложения GCJ на Ubuntu Natty

#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?