Я пытаюсь собрать протоколные буферы Google и Kyotocabinet на суперкомпьютере Blue Gene, который является машиной на базе PowerPC64 и работает под управлением Suse Linux, gcc 4.1.2.
Когда я компилирую свой код, оба буфера протокола Googleи Киотокабинет дал ошибку «пропуск несовместимого».Командная строка компиляции:
g++ -g -Xlinker -zmuldefs -I/some_path/include $sourceFile -o $fileName -L/some_path/lib -lkyotocabinet -lz -lstdc++ -lrt -lpthread -lm -lc -lprotobuf -lprotoc meta.pb.cc
Затем я изменил их установку, используя ./configure --host=powerpc-bgp-linux
, на этот раз работает протокол протокола Google, но Kyotocabinet по-прежнему выдает эту ошибку, как показано ниже:
/usr/bin/ld: skipping incompatible /some_path/lib/libkyotocabinet.so when searching for -lkyotocabinet<br>
/usr/bin/ld: skipping incompatible /some_path/lib/libkyotocabinet.a when searching for -lkyotocabinet<br>
/usr/bin/ld: cannot find -lkyotocabinet<br>
collect2: ld returned 1 exit status
Я проверил config.status
из них, у Google Protocolbuffers есть что-то вроде этого
sys_lib_search_path_spec='/usr/lib/gcc/powerpc64-suse-linux/4.1.2 /usr/powerpc64-suse-linux/lib /usr/lib /lib'
Видимо, он знает, как найти нужные вещииспользовать.Но у Kyotocabinet нет таких настроек в config.status.Надеюсь, этот совет поможет.
Есть ли какое-нибудь решение, чтобы я мог использовать Kyotocabinet на BlueGene?Или я могу добавить несколько строк, как упомянуто выше, чтобы сообщить Киотокабинету, где найти правильную библиотеку?Или вы могли бы порекомендовать несколько быстрых магазинов ключей-значений?