Все там,
Я пишу код c, который имеет странную проблему при компиляции.
Исходный код в порядке.
Я компилирую его с помощью следующей опции:
$ gcc above_sample.c -I/home/hadoop/project/hadoop-0.20.2/src/c++/libhdfs -L/home/hadoop/project/hadoop-0.20.2/c++/Linux-amd64-64/lib -lhdfs -o above_sample.
Но это показывает, что результат выглядит так:
/usr/bin/ld: warning: libjvm.so, needed by /home/hadoop/project/hadoop-0.20.2/c++/Linux-amd64-64/lib/libhdfs.so, not found (try using -rpath or -rpath-link) /home/hadoop/project/hadoop-0.20.2/c++/Linux-amd64-64/lib/libhdfs.so: undefined reference to `JNI_CreateJavaVM@SUNWprivate_1.1'
/home/hadoop/project/hadoop-0.20.2/c++/Linux-amd64-64/lib/libhdfs.so: undefined reference to `JNI_GetCreatedJavaVMs@SUNWprivate_1.1'
collect2: ld returned 1 exit status
Я искал libjvm.so я нашел его в своей системе в /usr/java/lib.
Я сделал символическую ссылку, но не сработало.
Я скопировал библиотеку в несколько мест, например, usr / lib, проверьте LD_library_Path
но не смог скомпилировать программу, снова и снова показывая ту же ошибку
Может кто-нибудь сказать мне, что я делаю не так?
как связать .so файл с gcc?
или как .so файлы связаны в программе?