Tôi đang cố gắng xây dựng và liên kết một dự án dựa trên C++, cmake với clang (3.0). Dự án này liên kết đến một số thư viện được cài đặt trong thư mục tùy chỉnh/my/dir /. Thư mục này được bao gồm trong các biến môi trường LD_LIBRARY_PATH và LIBRARY_PATH. Dự án xây dựng và liên kết tốt với g ++.Trình liên kết Clang không nhìn vào LD_LIBRARY_PATH
Lệnh liên kết tạo ra và thực hiện bởi cmake trông giống như sau:
/usr/bin/clang++ -O3 stuff.cpp.o -o stuff -rdynamic -lmylib
ld sau đó phàn nàn với thông báo sau:
/usr/bin/ld: cannot find -lmylib
Lệnh liên kết ở trên chạy tốt bất cứ khi nào tôi tự thêm -L/my/dir/
. Có cách nào để liên kết mà không chỉ định cờ -L
không?
['LD_LIBRARY_PATH'] (http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html) là để tải thư viện lúc khởi động, không phải để giải quyết các phụ thuộc liên kết. Có lẽ bạn muốn sử dụng 'LDFLAGS'? –
Thú vị. Tôi sử dụng __g ++ __ và __clang ++ __ thay thế lẫn nhau với CMake nhưng không bao giờ gặp vấn đề tương tự. Tôi chỉ sử dụng macro 'link_directories()' để định nghĩa đường dẫn thư viện. – Hindol