2014-05-04 19 views
5

tôi đã thiếtTại sao CMake bỏ qua các tệp lắp ráp khi xây dựng thư viện tĩnh?

set(CAN_USE_ASSEMBLER TRUE) 

Và nó không giúp gì cả. Tôi đang cố gắng tạo thư viện tĩnh bằng lệnh như:

add_library(${CMAKE_PROJECT_NAME} STATIC ../PropWare ../spi ../spi_as.S ../sd) 

nơi tệp không có tiện ích mở rộng là tệp C++ hoặc C và tệp .S được lắp ráp. Nhưng khi tôi chạy cmake và thực hiện, nó biên dịch các nguồn C/C++ và chỉ bỏ qua tệp assembly ... không có cảnh báo, không có lỗi ... chỉ bỏ qua ngay trên nó.

Tôi thích bất kỳ ý tưởng nào. Toàn bộ nguồn có sẵn trên github (lưu ý: liên kết này là nhánh cmake, tất cả các liên kết khác sẽ bị bỏ qua). Dòng đầu tiên nằm trong số this file và dòng thứ hai nằm trong số this file.

Xin cảm ơn, David

Trả lời

5

Cuối cùng tìm thấy. Thay vì

set(CAN_USE_ASSEMBLER TRUE) 

tôi nên đã sử dụng

enable_language(ASM) 
0

Khi sử dụng gcc, bạn có thể biên dịch .S file với trình biên dịch C của bạn (không gọi rõ ràng của asm cần thiết). CMake có thể được yêu cầu làm như vậy bằng cách sử dụng

set_property(SOURCE <myfile>.S PROPERTY LANGUAGE C) 

cho mỗi tệp .S của bạn. Sau đó, họ đã được biên soạn trong ...

+0

Tôi cho rằng đó là một tùy chọn có thể hoạt động. Nhưng tại sao không chỉ kích hoạt assembly thông qua lệnh 'enable_language (ASM)'? – DavidZemon

+0

Và trên thực tế, tôi đã cài đặt CMake để sử dụng 'gcc' thay vì' as' để xây dựng các tệp lắp ráp. – DavidZemon

Các vấn đề liên quan