Có cách nào để đặt biến trong tập lệnh CMake thành đầu ra của lệnh shell không? Một cái gì đó như SET(FOO COMMAND "echo bar")
sẽ đến với tâm tríLàm cách nào để khởi tạo biến CMake với kết quả của lệnh shell
47
A
Trả lời
55
Bạn muốn lệnh execute_process
.
Trong trường hợp của bạn, trên Windows:
execute_process(COMMAND CMD /c echo bar OUTPUT_VARIABLE FOO)
hoặc trên Linux, chỉ cần:
execute_process(COMMAND echo bar OUTPUT_VARIABLE FOO)
Trong trường hợp đặc biệt này, CMake cung cấp một giải pháp đa nền tảng. Bản thân CMake có thể được sử dụng để chạy các lệnh có thể được sử dụng trên tất cả các hệ thống, một trong số đó là echo
. Để làm điều này, CMake phải được chuyển qua dòng lệnh arg -E
. Đối với danh sách đầy đủ các lệnh như vậy, chạy cmake -E help
Bên trong một kịch bản CMake, các CMake thực thi được gọi bởi ${CMAKE_COMMAND}
, vì vậy kịch bản cần phải làm:
execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO)
Các vấn đề liên quan
- 1. Làm cách nào để in kết quả của tập lệnh shell trong CMake?
- 2. Làm thế nào để lưu trữ kết quả của một lệnh shell thực hiện trong một biến trong python?
- 3. chạy lệnh shell (ctags) trong cmake và tạo
- 4. Làm thế nào để liên kết với boost.system với cmake
- 5. Thực thi tập lệnh shell trong gruntfile và gán kết quả cho biến
- 6. PHP + MYSQLI: Tham số biến/kết quả kết quả với câu lệnh đã chuẩn bị
- 7. C# thực hiện lệnh shell và nhận được kết quả
- 8. Tệp loạt Windows: Cách đặt biến với kết quả của lệnh?
- 9. Làm thế nào để nắm bắt kết quả đầu ra của Shell trong C#?
- 10. Cách lấy biến CMake từ dòng lệnh?
- 11. làm cách nào để tạo kết quả truy vấn in prolog khi chạy tập lệnh prolog
- 12. Làm cách nào để xóa phần mở rộng của tên tệp trong tập lệnh shell?
- 13. Làm cách nào để lưu kết quả của một so sánh vào biến số
- 14. Làm cách nào để bạn sử dụng biến tập lệnh shell làm đối số cho sed?
- 15. Cách kết hợp các lệnh shell
- 16. Làm cách nào để bạn khởi tạo vectơ const của các kết quả hàm bằng C++ 11?
- 17. Có cách nào để kết quả từ vựng của lệnh ghép ngắn Powershell không?
- 18. c makefile với các lệnh shell và các biến
- 19. Làm thế nào để khởi tạo hiệu quả kết cấu bằng số không?
- 20. Thực hiện lệnh được tạo động với dấu cách trong tập lệnh shell
- 21. Có thể đưa vào clipboard kết quả của lệnh shell không?
- 22. Cách tốt nhất để đọc đầu ra của lệnh shell
- 23. Làm cách nào để gọi lệnh Windows shell bằng VB6?
- 24. Làm cách nào để chạy tập lệnh shell bằng Spotlight?
- 25. Làm cách nào để thực hiện lệnh shell bằng VBA?
- 26. Làm cách nào để liên kết kết quả của DataTable.Select() với điều khiển ListBox?
- 27. Làm cách nào để chuyển hướng stdin từ tập lệnh shell sang lệnh trong tập lệnh shell?
- 28. Làm thế nào để khởi tạo các biến tĩnh
- 29. Làm cách nào để gán kết quả được chọn cho một biến?
- 30. Dán kết quả của lệnh tee
Tuỳ theo lệnh mà bạn thực hiện, nó có thể đặt khoảng trắng theo sau thành biến. Nếu hành vi này không được mong muốn, bạn có thể sử dụng tùy chọn OUTPUT_STRIP_TRAILING_WHITESPACE làm đối số cuối cùng cho hàm 'execute_process'. – hbobenicio