2016-10-24 5 views
0

Я пытался установить и успешно запустить OpenSplice DDS на CentOS. Первоначальная цель - установить его и запустить пример HelloWorld (на Java), я сделал необходимые файлы, используя make, этап компиляции для подписчика и шаги издателя, требующие компиляции (.jar), являются очень достоверными, я работаю над этим почти 2-3 недели, проблема в том, что очень мало документов и/или ресурсов обсуждают проблемы, связанные с установкой DDS (и там многие из них), я также попытался проконсультироваться с моим профессором, он намекнул мне, что это может быть проблема совместимости, когда я исправляю одну проблему с этой установкой, возникает еще одна проблема: ниже мой текущий вывод:Неверный класс ELF: Как успешно установить OpenSpliceDDS?

[[email protected] standalone]# java -jar saj_helloworld_sub.jar 
OpenJDK 64-Bit Server VM warning: You have loaded library /root/Downloads/HDE/x86.linux/lib/libdcpssaj.so which might have disabled stack guard. The VM will try to fix the stack guard now. 
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'. 
org.opensplice.dds.dcps.DomainParticipantFactoryImpl.get_instance() failed: /root/Downloads/HDE/x86.linux/lib/libdcpssaj.so: /root/Downloads/HDE/x86.linux/lib/libdcpssaj.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch) 
Exception in thread "main" java.lang.NullPointerException 
    at DDS.DomainParticipantFactory.create_participant(Unknown Source) 
    at DDSEntityManager.createParticipant(DDSEntityManager.java:67) 
    at HelloWorldDataSubscriber.main(HelloWorldDataSubscriber.java:38) 

Java Версия:

# java -version 
openjdk version "1.8.0_111" 
OpenJDK Runtime Environment (build 1.8.0_111-b15) 
OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode) 

Детали системы:

# uname -a 

Linux localhost.localdomain 3.10.0-327.36.1.el7.x86_64 # 1 SMP вс 18 сентября 13:04:29 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Итак, wrong ELF class является одной из возможных ошибок, которые я могу получить, трудности с установкой и правильной работой DDS встречаются не только мной, но и другими моими друзьями, имеющими разные ошибки , и поскольку никакие ресурсы и discu ssions существуют в Интернете по установке OpenSplice DDS (кроме официального сайта и файла readme), я решил открыть это обсуждение.

ответ

1

У вас работает 64-битная операционная система - это указывает на x86_64.

Вы бежите 64bit Java VM - OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)

У вас есть 32-битную библиотеку в: /root/Downloads/HDE/x86.linux/lib/libdcpssaj.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)

Самый простой обходной путь это скачать 64-битную версию OpenSplice ДДС, чтобы получить мимо этого вопроса ,

+0

Спасибо, что это было – aero