Tôi đang làm việc trong một dự án mất nhiều thời gian để xây dựng (10-15) phút. Tôi đã biên dịch lại để xác minh xem có lỗi biên dịch hay không. Bây giờ tôi muốn thay đổi thư mục cài đặt để tôi có một phiên bản mới có thể thực thi được với các thay đổi mới. Có phương pháp nào để sửa đổi đường dẫn cài đặt để cài đặt 'cài đặt' thành vị trí mới thay vì vị trí cũ không?cách sửa đổi đường dẫn cài đặt mà không cần chạy lại tập lệnh cấu hình/cmake lần nữa
Trả lời
Tạo ảnh makefiles hỗ trợ DESTDIR coding convention cho makefiles. Do đó bạn có thể ghi đè vị trí cài đặt mặc định bằng cách đặt biến số DESTDIR
khi gọi thực hiện:
$ make install DESTDIR=/opt/local
Không cần phải chạy lại CMake.
Chạy CMake với -DCMAKE_INSTALL_PREFIX=<somewhere different to last time>
không được làm cho dự án của bạn cần được biên dịch lại. Nếu bạn chuyển các tham số dòng lệnh khác cho CMake, ví dụ: thay đổi cờ biên dịch, rằng sẽ buộc xây dựng lại các mục tiêu bị ảnh hưởng, nhưng chỉ cần thay đổi tiền tố cài đặt sẽ không.
Có cách nào để thay đổi tiền tố cài đặt mà không cần chạy lại cmake? Có vẻ như CPACK có khả năng làm như vậy, nhưng tôi không thể nhìn thấy một cách để tôi làm điều đó trực tiếp chỉ bằng cách sử dụng make + một số biến. Nếu tôi muốn tạo một gói với trình đóng gói của riêng mình, tôi muốn nhận những thứ dưới/usr thay vì/usr/local, nhưng tôi muốn làm việc đó mà không cần phải hỏi lập trình viên chạy cmake với đúng CMAKE_INSTALL_PREFIX .. –
Vâng, bạn có thể sử dụng 'set' trong CMakeLists của bạn.txt để mã hóa cứng giá trị của 'CMAKE_INSTALL_PREFIX', nhưng tôi nghĩ điều này là khá phổ biến và có thể bắt gặp những người đã quen với CMake. Có lẽ một lựa chọn tốt hơn là in ra một 'thông điệp' trong CMakeLists.txt của bạn, hiển thị giá trị hiện tại của' CMAKE_INSTALL_PREFIX' và cũng đưa ra hướng dẫn về cách thay đổi giá trị. Một cái gì đó như 'message (" Đường dẫn cài đặt hiện tại là $ {CMAKE_INSTALL_PREFIX} ")' 'message (" Để thay đổi điều này: cmake. -DCMAKE_INSTALL_PREFIX = \ "
Chỉ trong trường hợp nếu ai đó không sử dụng CMake thì có một phương pháp để thực hiện điều đó trong Makefile. Nếu bạn có tệp Makefile.config được tạo trong thư mục xây dựng của mình, hãy tìm số prefix
. Điều này prefix
là cài đặt path
nơi nhị phân/tiêu đề, vv sẽ được cài đặt. Thay đổi điều này sẽ cài đặt các tập tin nhị phân/tiêu đề để sửa đổi path
.
Tôi không biết điều này có đúng hay không, nhưng tôi có thể đưa ra ví dụ về một ứng dụng mà the accepted answer bởi sakra
không hoạt động bình thường. Nếu bạn thay đổi thư mục cài đặt bằng cách sửa đổi DESTDIR
khi cài đặt ITK, nó sẽ chỉ thêm DESTDIR
đến con đường đã hình thành cài đặt nó:
make install DESTDIR=/opt/local
[...]
-- Installing: /opt/local/usr/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]
Mặt khác , sau this answer bởi Fraser
sẽ dẫn đến đường dẫn cài đặt thích hợp mà không cần biên dịch lại:
cmake -DCMAKE_INSTALL_PREFIX=/opt/local /path/to/ITK_source
make install
[...]
-- Installing: /opt/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]
Định nghĩa kinh điển của DESTDIR và tiền tố là: các tệp được cài đặt vào tiền tố $ DESTDIR $, nhưng được chuẩn bị như vị trí cài đặt cuối cùng của chúng chỉ là tiền tố $.
Vì vậy, DESTDIR chỉ dành cho những người xây dựng gói hoặc tarballs của các tệp nhị phân; CMAKE_INSTALL_PREFIX dành cho bất kỳ ai muốn chỉ định nơi các tệp nhị phân được xây dựng nên tồn tại ở cuối.
- 1. mvn cài đặt lỗi một lần nữa
- 2. làm cách nào để sửa đổi biến đường dẫn hệ thống trong tập lệnh python?
- 3. Eclipse MyLyn with BugZilla: Cài đặt BugZilla có cần được sửa đổi/định cấu hình không?
- 4. Chạy java mà không cần cài đặt jre?
- 5. Chạy Java thực thi mà không cần cài đặt JRE?
- 6. intellij ý tưởng "Tải lỗi: biến đường dẫn không xác định" một lần nữa và một lần nữa
- 7. chạy msbuild mà không cần cài đặt VS
- 8. Làm cách nào để có được đường dẫn của tập lệnh Python mà tôi đang chạy?
- 9. Chạy ứng dụng .net mà không cần cài đặt cấu hình ứng dụng khách .net?
- 10. cách sửa đổi exe.config từ tập lệnh Innosetup
- 11. đường dẫn tập lệnh groovy
- 12. Cài đặt maven2 mà không cần openjdk
- 13. Nơi đặt các lệnh cấu hình Beanstalk Elastic mà chỉ chạy một lần trên spin-up?
- 14. Làm cách nào để sửa đổi đường dẫn tệp trong tập hợp các bản vá Git?
- 15. npm cài đặt mà không cần ssl
- 16. Đường dẫn Đăng nhập Đặt lại Phiên
- 17. Cách cài đặt và cấu hình PowerShell?
- 18. Cài đặt PIP và đường dẫn Python
- 19. Tải lại tập lệnh django wsgi mà không có gốc
- 20. Có thể chạy tập lệnh Selenium mà không cần chạy máy chủ X không?
- 21. Làm cách nào để có được đường dẫn của tập lệnh hiện đang chạy với Javascript?
- 22. Cách lấy đường dẫn tập lệnh trong R?
- 23. SVN - Cách xuất Chỉ cần sửa đổi
- 24. Cách sửa đổi mã nguồn mà không cần chạy lại cfx và Firefox khi gỡ lỗi một add-on SDK?
- 25. Tôi có cần phải bao gồm các tập lệnh PHP một lần nữa trong một trang PHP tải ajax không?
- 26. Cần khởi động lại python trong Terminal mỗi lần thay đổi được thực hiện thành tập lệnh
- 27. Tập lệnh cài đặt ứng dụng Django - Cách thêm ứng dụng vào cài đặt INSTALLED_APPS?
- 28. Làm cách nào để chạy tập lệnh CGI perl của tôi mà không cần apache?
- 29. Chạy "gói cài đặt" không thành công và yêu cầu tôi chạy "gói cài đặt"
- 30. Nginx chuyển đổi tên miền phụ để thành phần đường dẫn mà không cần chuyển hướng
bản sao có thể có của [Thực hiện cài đặt - nhưng không phải là thư mục mặc định?] (Http://stackoverflow.com/questions/3239343/make-install-but-not-to-default-directories) –