Tôi đang sử dụng đoạn mã sau để kiểm tra thư viện RE2 google củare2 tải thư viện
int main()
{
int r = RE2::FullMatch("hello", "h.*o");
cout <<" match = " << r << endl;
return 0;
}
Tôi compling bằng cách sử dụng lệnh sau -
g++ -lre2 -o retest retest.cc
Nó được biên soạn tốt, nhưng khi tôi đang cố gắng để chạy thử lại với ./retest việc ném lỗi sau -
error while loading shared libraries: libre2.so.0: cannot open shared object file: No such file or directory
Tôi đã kiểm tra và libre2.so.0 thư viện nào tồn tại ở thư mục người dùng/local/lib và thư mục re2/obj/so. Vậy tại sao lỗi này lại đến khi tôi quên một số chi tiết cần thêm?
Đây có phải là giải pháp không? http://edn.embarcadero.com/article/32861. Chỉ cần thiết lập LD_LIBRARY_PATH của bạn để trỏ đến thư mục lib nơi libre.so.0 được đặt. – Lucian
tệp libre2.so.0 nằm ở đâu? là nó trong 'LD_LIBRARY_PATH' của bạn và/hoặc một đường dẫn từ /etc/ld.so.conf? bạn đã chạy ldconfig sau khi cài đặt nó chưa? – PlasmaHH
Có thể trùng lặp với [lỗi Linux khi tải thư viện được chia sẻ: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục nào] [http://stackoverflow.com/questions/480764/linux-error-while-loading-shared-libraries-cannot -open-shared-object-file-no-s) –