tôi cố gắng thiết lập một hệ thống xây dựng để xây dựng một chia sẻ lib MySharedLib và nhị phân MyBinary mà dựa vào MySharedLib. Hệ thống xây dựng sẽ có thể cài đặt MySharedLib và MyBinary khi được yêu cầu và chỉ khi được yêu cầu.thực hiện một mục tiêu 'cài đặt' với SCons
import os.path
env = Environment()
env.Append(CCFLAGS='-g -Wall -ansi -O2')
prefix = '/usr/local'
lib_dir = os.path.join(prefix, 'lib')
bin_dir = os.path.join(prefix, 'bin')
Export('env prefix lib_dir bin_dir')
libMySharedLib = SConscript('libMySharedLib/SConscript')
MyBinary = SConscript('MyBinary/SConscript')
env.Alias('install', env.Install(lib_dir, libMySharedLib))
env.Alias('install', env.Install(bin_dir, MyBinary))
Khi tôi chạy SCons không có đối số dòng lệnh, MySharedLib và MyBinary được tạo, nhưng nó cũng cố gắng cài đặt chúng. Tôi muốn chúng được cài đặt chỉ khi tôi yêu cầu mục tiêu cài đặt. Tôi đã thử nhiều lần, đọc tài liệu, nhưng tôi không thể hiểu được.
Thật thú vị, tôi có vấn đề đối diện chính xác (như được mô tả trong [link] (http://stackoverflow.com/questions/24189440/scons-always-install-after-build)) Tôi muốn cài đặt xảy ra với bản dựng, nhưng tôi không thể ép buộc nó hoạt động! Tôi phải nói rõ ràng 'scons install' hoặc' scons/usr/local/bin' (cho ví dụ thư mục của bạn). Khi bạn nhìn thấy điều này, bạn đã chạy scons trong/usr/local? Sự khác biệt cũng là bạn cài đặt với kết quả của một SConscript, trong khi tôi làm điều đó với kết quả của một số Builder, nhưng tại sao lại quan trọng ... –