Tôi có một dự án nhỏ với Makefile mà tôi đang cố gắng chuyển đổi sang CMake, chủ yếu chỉ để có kinh nghiệm với CMake. Đối với mục đích của ví dụ này, dự án chứa một tệp nguồn (C ++, mặc dù tôi không nghĩ rằng ngôn ngữ này có liên quan đặc biệt) và một tệp thư viện tĩnh mà tôi đã sao chép từ nơi khác. Giả sử vì lợi ích của đối số rằng mã nguồn của thư viện không có sẵn; Tôi chỉ có tệp .a và tiêu đề tương ứng.
Makefile thủ công của tôi chứa quy tắc xây dựng này:
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
hoạt động tốt. Làm cách nào để yêu cầu CMake tái tạo điều này? Tất nhiên, không phải là makefile chính xác theo nghĩa đen mà là thứ bao gồm lệnh liên kết tương đương. Tôi đã thử những cách hiển nhiên nhưng ngây thơ, như
add_executable(main main.cpp libbingitup.a)
hoặc là
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
cũng như nhiều thứ khác nhau có link_directories(.)
hoặc add_library(bingitup STATIC IMPORTED)
vv nhưng không có gì cho đến nay dẫn đến liên kết thành công. Tôi nên làm gì đây?
Chi tiết phiên bản: CMake 2.8.7 trên Linux (Kubuntu 12.04) với GCC 4.6.3