Tôi có một câu hỏi liên quan đến CMake trong MAC. Tôi chắc chắn rằng chương trình thực thi sẽ liên kết các khuôn khổ và các thư viện một cách chính xác với các mã sau:Tại sao tôi không thể liên kết tệp khuôn khổ Mac với CMake?
link_directories(directory_to_framework_and_libs)
add_executable(program ${FILE_LIST})
target_link_libraries(program framework_name lib1 lib2)
Trong dòng mã đầu tiên, tôi biểu thị vị trí mà chương trình thực thi có thể tìm kiếm các khuôn khổ và thư viện. Trong mã dòng thứ ba, khung công tác và các thư viện sẽ liên kết đến chương trình thực thi. Tuy nhiên, khi tôi biên dịch xcode.project được tạo từ tệp cmake với Xcode 4, dự án tiếp tục phàn nàn rằng nó không thể tìm thấy -lframework_name
: ld: library not found -lframework_name
Bất kỳ ý tưởng nào cũng sẽ được đánh giá cao.
Thật khó để nói điều gì sai ở đây mà không có chi tiết cụ thể hơn. Trong hiệu trưởng, nó xuất hiện chính xác. Tuy nhiên, tôi khuyên bạn nên tránh sử dụng ['link_directories'] (http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:link_directories) (xem tài liệu để biết thêm thông tin) và sử dụng ['find_library'] (http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:find_library) để thay thế. Điều này sẽ cho phép bạn chuyển toàn bộ đường dẫn đến thư viện trong cuộc gọi 'target_link_libraries' và nếu thư viện chưa được tìm thấy, bạn sẽ gặp lỗi tại CMake cấu hình thời gian thay vì ở thời gian liên kết. – Fraser