首页 > 编程知识 正文

scons用户手册,摄影自学入门

时间:2023-05-06 01:35:04 阅读:170667 作者:923

scons % E3 % 81 % af % E4 % BD % 95 % E3 % 81 % a7 % E3 % 81 % 99 % E3 % 81 % 81 % 8b % ef % BC % 9f make % E3 % 81 % af Linux % E3 % E3 % 81 % af Linux % af % 92 % E3 % 81 % 97 % E3 % 81 % 9f % E3 % 82 % af % E3 % 83 % a9 % E3 % 82 % B9 % E3 % 83 % a1 % E3 % 83 % BC % E3 % 83 % 83 % 88 % af E3 % 81 % 86 % E3 % 83 % 97 % E3 % 83 % ad % E3 % 82 % b8 % E3 % 82 % a7 % E3 % 82 % af % E3 % 83 % 88 % E3 % 82 % A8 % E3 % 83 % A8 % E3 % 83 % A8 % E3 % E3 % 82 % A8 % E3 % E3 6 % E3 % 83 % 84 % E3 % 83 % BC % E3 % 83 % ab % E3 % 82 % 92 % E7 % 9f % a5 % E3 % 81 % a3 % E3 % 81 % a6 % E3 % 81 % 84 % E3 % 84 % E3 % ab c % E3 % 83 % ab % E3 % 81 % af % E3 % 80 % 811970 % E5 % B9 % B4 % E4 % bb % a3 % E3 % 81 % ab Stuart % 20 Feldman % E3 % 81 % E3 % 81 % 99 % ba % E3 % 81 % 95 % E3 % 82 % 8c % E3 % 81 % a6 % E4 % bb % a5 % E6 % 9d % a5 % E3 % 80 % 81 UNIX % E7 % B3 % bb % E3 % 83 97 % E3 % 81 % ab % E5 % 85 % a5 % E3 % 82 % 8a % E3 % 81 % AE % E4 % b8 % 80 % E3 % 81 % a4 % E3 % 81 % a7 % E3 % 81 % 81 % 99 % e9 % ea 6 % 99 % 82 % e9 % 96 % 93 % E3 % 82 % 92 % E3 % 83 % 81 % E3 % 82 % a7 % E3 % 83 % 83 % E3 % 82 % af % E3 % 81 % 99 % E3 % 82 % E3 % 82 1 % af % E3 % 82 % BF % E3 % 83 % BC % E3 % 82 % B2 % E3 % 83 % 83 % E3 % 83 % 95 % E3 % 82 % a1 % E3 % 82 % a4 % 82 % 8b % E3 % 81 % 9f % E3 % 82 % 81 % E3 % 81 % ab % E4 % be % 9d % E5 % ad % 98 % E3 % 81 % 99 % E3 % 82 % 8b % E4 % bb % E3 % 81 % 93 % E3 % 81 % A8 % E3 % 81 % 8c % E3 % 81 % a7 % E3 % 81 % be % 8d % E3 % 81 % 99 % E3 % 80 % 82 % 20 % e20 % 3 % 88 % E3 % 81 % a7 % E3 % 81 % af % E3 % 80 % 81 % E4 % BF % AE % E6 % ad % a3 % E3 % 81 % 95 % E3 % 82 % 8c % E3 % 81 % 81 % 9f % 81 % 8b % E3 % 81 % aa % E3 % 81 % 84 % E5 % A0 % B4 % E5 % 90 % 88 % E3 % 80 % 81 make % E3 % 83 % 84 % E3 % BC % E3 % % 92 % E5 % 86 % 8d % E3 % 82 % B3 % E3 % 83 % B3 % E3 % 83 % 91 % E3 % 82 % a4 % E3 % 83 % ab % E3 % 81 % 99 % E3 % 82 % 82 % 8b % 83 % 97 % E3 % 83 % ad % E3 % 82 % B0 % E3 % 83 % A0 % E3 % 81 % 8c % E6 % ad % a3 % E3 % 81 % 97 % E3 % 81 % 81 % 81 % ad % E3 % 81 % a9 % E3 % E3 % 81 % 81 % 81 % 81 % 81 % 81 3 % 83 % aa % E3 % 83 % B3 % E3 % 82 % af % E3 % 81 % 95 % E3 % 82 % 82 % 8c % E3 % 82 % 8b % 81 % E3 % 82 % 92 % E7 % 9f % AE % E3 % 82 % 88 % E3 % 81 % 86 % E3 % 81 % ab % E3 % 81 % 99 % E3 % 82 % 8b % E3 % 81 % 93 % E3 % 81 % A8 % E3 % 81 % AE 83 % 91 % E3 % 82 % a4 % E3 % 83 % ab % E4 % b8 % ad % E3 % 81 % ab % E3 % 80 % 81 % E5 % a4 % a7 % e9 % 87 % 8f % E3 % 81 % ad % E3 % 81 % ab 7 % B4 % 84 % E3 % 81 % a7 % E3 % 81 % 8d % E3 % 82 % 8b % E3 % 81 % A0 % E3 % 81 % 91 % E3 % 81 % a7 % E3 % 81 % aa % E3 % 81 % E3 % 81 % 97 % E3 % 81 % 8f % E3 % 83 % aa % E3 % 83 % B3 % E3 % 81 % 82 % af % E3 % 81 % 95 % E3 % 82 % 8c % E3 % 80 % 81 % E3 % 81 % aa ad % E7 % b8 % AE % E3 % 81 % a7 % E3 % 81 % 8d % E3 % 82 % 8b % E3 % 81 % 81 % A8 % E3 % 81 % a7 % E3 % 81 % 81 % 81 % 99 % ed BC % E3 % 83 % ab % E3 % 81 % AE % E6 % a7 % 8b % E7 % af % 89 % E3 % 83 % BC % ab % E3 % 83 % ab % E3 % 82 % 92 % EB 1 % aa % E3 % 81 % 93 % E3 % 81 % A8 % E3 % 81 % a7 % E3 % 81 % af % E3 % 81 % 81 % 82 % 8a % E3 % 81 % be % E3 % 81 % 81 % 9b % E7 % BD % AE % E3 % 83 % ab % E3 % 83 % BC % E3 % 83 % ab % E3 % 80 % 81 % af % E3 % 80 % 81 % E7 % b5 % 8c % e9 % A8 % 93 % E3 % E3 % ab 90 % E3 % 82 % 8c % E3 % 81 % a6 % E3 % 81 % 84 % E3 % 81 % be % E3 % 80 % 81 % 81 % 99 % E3 % 80 % 82 % 0a % E3 % 81 % a7 % E3 % 81 % a3 % 81 % a3 % 81 % a1 % a3 % 81 % E3 % 81 3 % 81 % AE % E8 % a3 % BD % E5 % 93 % 81 % E3 % 82 % 92 % E4 % b8 % 80 % E3 % 81 % a4 % E7 % B4 % B9 % E4 % bb % 8b % E3 % 81 % E3 % 83 % BC % E3 % 83 % 89 % E8 % a3 % BD % E5 % 93 % 81 % E3 % 81 % E3 % 82 % 82 % E8 % A8 % 80 % E3 % 81 % 88 % E3 % E3 % A8 % E5 % 90 % 8c % E3 % 81 % 98 % E3 % 81 % 93 % E3 % 81 % A8 % E3 % 82 % 92 % E3 % 81 % 97 % E3 % 81 % a6 % E3 % 81 % 84 % E3 d % 98 % E3 % 81 % a7 % E3 % 80 % 81 % E3 % 82 % 82 % E3 % 81 % a3 % E3 % 81 % A8 % E7 % B0 % a1 % E5 % 8d % 98 % E3 % 81 % a7 % E3 % 81 % a7 % a7 3 % B3 % E3 % 82 % BD % E3 % 83 % BC % E3 % 82 % B9 % E3 % 81 % a7 python % E8 % A8 % 80 % E8 % aa % 9e % E3 % 81 % a7 % E3 % 83 % a7 % E3 % 81 % E3 % a7 % E3 % E3 % E3 % 81 % E3 % 9f % E8 % 87 % aa % E5 % 8b % 95 % E3 % 83 % 93 % E3 % 83 % ab % E3 % 83 % 84 % E3 % 83 % BC % E3 % 83 % ab % ab % % e9 % 9b % 91 % E3 % 81 % aa % E3 % 83 % a1 % E3 % 82 % a4 % E3 % 83 % 82 % af % E3 % 83 % 95 % E3 % 82 % a1 % E3 % 82 % a4 % E3 % E3 % a4 % E3 % 82 % a4 % a4 % E3 % E3 % 82 % a 8c % E3 % 81 % a7 % E3 % 81 % 81 % 8d % E3 % 81 % be % E3 % 81 % 99 % E3 % 80 % 82 % 20 % E3 % 81 % 9d % E3 % 81 % 97 % E3 % 81 % a3 % 81 % be3% 81 % 81 % a1 % be

% scons-cs cons 3360 readingsconscriptfiles . scons : donereadingsconscriptfiles.scons 3360 cleaning

targets ...Removed hello.oRemoved helloscons: done cleaning targets.% lshello.c SConstruct 相关命令

如果你不想直接编译可执行的二进制文件,那也没有关系。SCons 支持多种编译类型,你可以根据自己的需要,任意选用其中的一种。

SCons 支持的编译类型有:

Program: 编译成可执行程序(在 Windows 平台上即是 exe 文件),这是最常用的一种编译类型。Object: 只编译成目标文件。使用这种类型,编译结束后,只会产生目标文件。在 POSIX 系统中,目标文件以 .o 结尾,在 Windows 平台上以 .OBJ 结尾。Library: 编译成库文件。SCons 默认编译的库是指静态链接库。StaticLibrary: 显示的编译成静态链接库,与上面的 Library 效果一样。SharedLibrary: 在 POSIX 系统上编译动态链接库,在 Windows 平台上编译 DLL。

如果不想使用 SConstruct 为你设置的默认可执行文件的名字,而是选择你自己喜欢的名字,如 myhello,可以把 SConstruct 的内容修改为 :

Program('myhello', 'helloscons.c')

其中 myscons 就是你想要的可执行文件的名字.

% scons -Qgcc -o hello.o -c hello.cgcc -o myhello hello.o

其中,-Q 参数是减少编译时的由 scons 产生的冗余信息。

如果你的项目由多个源文件组成,而且你想指定一些编译的宏定义,以及显式的指定使用某些库,这些对于 SCons 来说,都是非常简单的事情。我们的另外一个例子 helloscons2 很好的说明这种情况。 helloscons2 由 3 个源文件组成 , 它们是 helloscon2.c, file1.c, file2.c,另外指定了编译的选项,同时还指定了使用哪些具体的库。让我们来看一下 helloscons2 的 SConstruct 文件 :

Program('helloscons2', ['helloscons2.c', 'file1.c', 'file2.c'], LIBS = 'm', LIBPATH = ['/usr/lib', '/usr/local/lib'], CCFLAGS = '-DHELLOSCONS')

该 SConstruct 文件指出,它将生成一个名叫 helloscons2 的可执行程序,该可执行程序由 helloscons2.c, file1.c 和 file2.c 组成。注意,多个源文件需要放在一个 Python 列表中。如果你的源程序代码文件很多,有十几个甚至上百个,那不要一个个的将他们都列出来,你可以使用 glob(’*.c’) 来代替源代码列表。如下 :

Program('helloscons2', Glob('*.c'))

配置文件中 LIBS,LIBAPTH 和 CCFLAGS 是 SCons 内置的关键字,它们的作用如下:

LIBS: 显示的指明要在链接过程中使用的库,如果有多个库,应该把它们放在一个列表里面。这个例子里,我们使用一个称为 m 的库。LIBPATH: 链接库的搜索路径,多个搜索路径放在一个列表中。这个例子里,库的搜索路径是 /usr/lib 和 /usr/local/lib。CCFLAGS: 编译选项,可以指定需要的任意编译选项,如果有多个选项,应该放在一个列表中。这个例子里,编译选项是通过 -D 这个 gcc 的选项定义了一个宏 HELLOSCONS。CPPPATH:指定头文件的路径

运行 scons 命令的时候,可以看到这些变量如何被使用的,让我们执行一下 scons 命令 :

$ scons -Q gcc -o file1.o -c -DHELLOSCONS file1.c gcc -o file2.o -c -DHELLOSCONS file2.c gcc -o helloscons2.o -c -DHELLOSCONS helloscons2.c gcc -o helloscons2 helloscons2.o file1.o file2.o -L/usr/lib -L/usr/local/lib -lm 更多内容

以上只是入门,还有更多知识等待学习。

如,通过Environment指定编译环境,env = Environment(CC = 'g++'),指定使用g++编译程序。

示例如下:

env = Environment(CC = 'g++')env.Program("client", "client.c", LIBS = 'm', CPPPATH = '../include', CCFLAGS = '-std=c++11')

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。