
给你gcc的编译参数
gcc 和 g++分别是gnu的c和c++编译器 gcc/g++在执行编译工作的时候,总共需要4步
1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]
3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]
[参数详解]
-x language filename
设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后
缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀
名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了
下一个参数的使用。
可以使用的参数吗有下面的这些
`c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `a
ssembler-with-cpp'.
看到英文,应该可以理解的。
例子用法:
gcc -x c hello.pig
-x none filename
关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型
例子用法:
gcc -x c hello.pig -x none hello2.c
-c
只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
例子用法:
gcc -c hello.c
他将生成.o的obj文件
-S
只激活预处理和编译,就是指把文件编译成为汇编代码。
例子用法
gcc -S hello.c
他将生成.s的汇编代码,你可以用文本编辑器察看
-E
只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.
例子用法:
gcc -E hello.c >pianoapan.txt
gcc -E hello.c | more
慢慢看吧,一个hello word 也要与处理成800行的代码
-o
制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感
,改掉它,哈哈
例子用法
gcc -o hello.exe hello.c (哦,windows用习惯了)
gcc -o hello.asm -S hello.c
-pipe
使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问题
gcc -pipe -o hello.exe hello.c
-ansi
关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inl
ine typeof关键字,以及UNIX,vax等预处理宏,
-fno-asm
此选项实现ansi选项的功能的一部分,它禁止将asm,inline和typeof用作关键字。
-fno-strict-prototype
只对g++起作用,使用这个选项,g++将对不带参数的函数,都认为是没有显式的对参数
的个数和类型说明,而不是没有参数.
而gcc无论是否使用这个参数,都将对没有带参数的函数,认为城没有显式说明的类型
-fthis-is-varialble
就是向传统c++看齐,可以使用this当一般变量使用.
-fcond-mismatch
允许条件表达式的第二和第三参数类型不匹配,表达式的值将为void类型
-funsigned-char
-fno-signed-char
-fsigned-char
-fno-unsigned-char
这四个参数是对char类型进行设置,决定将char类型设置成unsigned char(前两个参
数)或者 signed char(后两个参数)
-include file
包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以用它设
定,功能就相当于在代码中使用#include<filename>
例子用法:
gcc hello.c -include /root/pianopan.h
-imacros file
将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件中
-Dmacro
相当于C语言中的#define macro
-Dmacro=defn
相当于C语言中的#define macro=defn
-Umacro
相当于C语言中的#undef macro
-undef
取消对任何非标准宏的定义
-Idir
在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头文件,如
果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他
回先在你所制定的目录查找,然后再按常规的顺序去找.
对于#include<file>,gcc/g++会到-I制定的目录查找,查找不到,然后将到系统的缺
省的头文件目录查找
-I-
就是取消前一个参数的功能,所以一般在-Idir之后使用
-idirafter dir
在-I的目录里面查找失败,讲到这个目录里面查找.
-iprefix prefix
-iwithprefix dir
一般一起使用,当-I的目录查找失败,会到prefix+dir下查找
-nostdinc
使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头
文件的位置
-nostdin C++
规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创libg++库
使用
-C
在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很方便的
-M
生成文件关联的信息。包含目标文件所依赖的所有源代码你可以用gcc -M hello.c
来测试一下,很简单。
-MM
和上面的那个一样,但是它将忽略由#include<file>造成的依赖关系。
-MD
和-M相同,但是输出将导入到.d的文件里面
-MMD
和-MM相同,但是输出将导入到.d的文件里面
-Wa,option
此选项传递option给汇编程序如果option中间有逗号,就将option分成多个选项,然
后传递给会汇编程序
-Wl.option
此选项传递option给连接程序如果option中间有逗号,就将option分成多个选项,然
后传递给会连接程序.
-llibrary
制定编译的时候使用的库
例子用法
gcc -lcurses hello.c
使用ncurses库编译程序
-Ldir
制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然
编译器将只在标准库的目录找。这个dir就是目录的名称。
-O0
-O1
-O2
-O3
编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-g
只是编译器,在编译的时候,产生调试信息。
-gstabs
此选项以stabs格式声称调试信息,但是不包括gdb调试信息.
-gstabs+
此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.
-ggdb
此选项将尽可能的生成gdb的可以使用的调试信息.
-static
此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么
动态连接库,就可以运行.
-share
此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
-traditional
试图让编译器支持传统的C语言特性
SQL (sometimes expanded as Structured Query Language) is a computer language used to create, retrieve, update and delete data from relational database management systems. SQL has been standardized by both ANSI and ISO.SQL is commonly spoken either as the names of the letters ess-cue-el (IPA: [ˈɛsˈkjuˈɛl]), or like the word sequel (IPA: [ˈsiːkwəl]). The official pronunciation of SQL according to ANSI is ess-cue-el. However, each of the major database products (or projects) containing the letters SQL has its own convention: MySQL is officially and commonly pronounced "My Ess Cue El"PostgreSQL is expediently pronounced postgres (being the name of the predecessor to PostgreSQL)and Microsoft SQL Server is commonly spoken as Microsoft-sequel-server.
History
An influential paper, A Relational Model of Data for Large Shared Data Banks, by Dr. Edgar F. Codd, was published in June 1970 in the Association for Computing Machinery (ACM) journal, Communications of the ACM, although drafts of it were circulated internally within IBM in 1969. Codd's model became widely accepted as the definitive model for relational database management systems (RDBMS or RDMS).
During the 1970s, a group at IBM's San Jose research center developed a database system "System R" based upon Codd's model. Structured English Query Language ("SEQUEL") was designed to manipulate and retrieve data stored in System R. The acronym SEQUEL was later condensed to SQL because the word 'SEQUEL' was held as a trademark by the Hawker Siddeley aircraft company of the UK.[citation needed] Although SQL was influenced by Codd's work, Donald D. Chamberlin and Raymond F. Boyce at IBM were the authors of the SEQUEL language design. Their concepts were published to increase interest in SQL.
The first non-commercial, relational, non-SQL database, Ingres, was developed in 1974 at U.C. Berkeley.
In 1978, methodical testing commenced at customer test sites. Demonstrating both the usefulness and practicality of the system, this testing proved to be a success for IBM. As a result, IBM began to develop commercial products based on their System R prototype that implemented SQL, including the System/38 (announced in 1978 and commercially available in August 1979), SQL/DS (introduced in 1981), and DB2 (in 1983).
At the same time, Relational Software, Inc. (now Oracle Corporation) saw the potential of the concepts described by Chamberlin and Boyce and developed their own version of a RDBMS for the Navy, CIA and others. In the summer of 1979, Relational Software, Inc. introduced Oracle V2 (Version2) for VAX computers as the first commercially available implementation of SQL. Oracle V2 beat IBM's release of the System/38 to the market by a few weeks.
Standardization
SQL was adopted as a standard by ANSI (American National Standards Institute) in 1986 and ISO (International Organization for Standardization) in 1987. However, since the dissolution of the NIST data management standards program in 1996 there has been no certification for compliance with the SQL standard so vendors must be relied on to self-certify.
The SQL standard is not freely available. SQL:2003 and SQL:2006 may be purchased from ISO or ANSI. A late draft of SQL:2003 is available as a zip archive from Whitemarsh Information Systems Corporation. The zip archive contains a number of PDF files that define the parts of the SQL:2003 specification.
Scope
SQL is designed for a specific purpose: to query data contained in a relational database. SQL is a set-based, declarative programming language, not an imperative language such as C or BASIC.
Language extensions such as Oracle Corporation's PL/SQL bridge this gap to some extent by adding procedural elements, such as flow-of-control constructs. Another approach is to allow programming language code to be embedded in and interact with the database. For example, Oracle and others include Java in the database, and SQL Server 2005 allows any .NET language to be hosted within the database server process, while PostgreSQL allows functions to be written in a wide variety of languages, including Perl, Tcl, and C.
Extensions to and variations of the standards exist. Commercial implementations commonly omit support for basic features of the standard, such as the DATE or TIME data types, preferring variations of their own. SQL code can rarely be ported between database systems without major modifications, in contrast to ANSI C or ANSI Fortran, which can usually be ported from platform to platform without major structural changes.
PL/SQL, IBM's SQL PL (SQL Procedural Language) and Sybase / Microsoft's Transact-SQL are of a proprietary nature because the procedural programming language they present are non-standardized.
Reasons for lack of portability
There are several reasons for this lack of portability between database systems:
* The complexity and size of the SQL standard means that most databases do not implement the entire standard.
* The standard does not specify database behavior in several important areas (e.g. indexes), leaving it up to implementations of the database to decide how to behave.
* The SQL standard precisely specifies the syntax that a conforming database system must implement. However, the standard's specification of the semantics of language constructs is less well-defined, leading to areas of ambiguity.
* Many database vendors have large existing customer baseswhere the SQL standard conflicts with the prior behavior of the vendor's database, the vendor may be unwilling to break backward compatibility.
SQL keywords
Queries
The most common operation in SQL databases is the query, denoted with the SELECT keyword. SQL SELECT queries are declarative:
* SELECT retrieves data from tables in a database. While often grouped with Data Manipulation Language statements, SELECT is considered by many to be separate from SQL DML. SELECT queries allow the user to specify a description of the desired result set, but it is left to the devices of the database management system (DBMS) to plan, optimize, and perform the physical operations necessary to produce that result set. A SQL query includes a list of columns to be included in the final result immediately following the SELECT keyword. An asterisk ("*") can also be used as a "wildcard" indicator to specify that all available columns of a table (or multiple tables) are to be returned. SELECT is the most complex statement in SQL, with several optional keywords and clauses:
o The FROM clause indicates the source tables from which the data is to be drawn. The FROM clause can include optional JOIN clauses to join related tables to one another.
o The WHERE clause includes a comparison predicate, which is used to narrow the result set. The WHERE clause eliminates all rows from the result set for which the comparison predicate does not evaluate to True.
o The GROUP BY clause is used to combine rows with related values into elements of a smaller set of rows.
o The HAVING clause is used to identify which of the "combined rows" (combined rows are produced when the query has a GROUP BY clause or when the SELECT part contains aggregates), are to be retrieved. HAVING acts much like a WHERE, but it operates on the results of the GROUP BYand can include aggregate functions.
o The ORDER BY clause is used to identify which columns are used to sort the resulting data. Unless an ORDER BY clause is included, the order of rows returned by SELECT is never guaranteed.
Data retrieval is very often combined with data projectionusually it isn't the verbatim data stored in primitive data types that a user is looking for or a query is written to serve. Often the data needs to be expressed differently from how it's stored. SQL allows a wide variety of formulas included in the select list to project data.
Example 1:
SELECT * FROM books
WHERE price >100.00
ORDER BY title
This is an example that could be used to get a list of expensive books. It retrieves the records from the books table that have a price field which is greater than 100.00. The result is sorted alphabetically by book title. The asterisk (*) means to show all columns of the books table. Alternatively, specific columns could be named.
Example 2:
SELECT books.title, count(*) AS Authors
FROM books
JOIN book_authors
ON books.book_number = book_authors.book_number
GROUP BY books.title
which could also be written as
SELECT title, count(*) AS Authors
FROM books NATURAL JOIN book_authors
GROUP BY title
under the precondition that book_number is the only common column name of the two tables and that a column named title only exists in books.
Example 2 shows both the use of multiple tables in a join, and aggregation (grouping). This example shows how many authors there are per book. Example output may resemble:
Title Authors
---------------------- -------
SQL Examples and Guide 3
The Joy of SQL 1
How to use Wikipedia 2
Pitfalls of SQL 1
How SQL Saved my Dog 1
Data manipulation
First, there are the standard Data Manipulation Language (DML) elements. DML is the subset of the language used to add, update and delete data:
* INSERT is used to add rows (formally tuples) to an existing table.
* UPDATE is used to modify the values of a set of existing table rows.
* MERGE is used to combine the data of multiple tables. It is something of a combination of the INSERT and UPDATE elements. It is defined in the SQL:2003 standardprior to that, some databases provided similar functionality via different syntax, sometimes called an "upsert".
* DELETE removes zero or more existing rows from a table.
INSERT Example:
INSERT INTO my_table (field1, field2, field3) VALUES ('test', 'N', NULL)
UPDATE Example:
UPDATE my_table SET field1 = 'updated value' WHERE field2 = 'N'
DELETE Example:
DELETE FROM my_table WHERE field2 = 'N'
Transaction controls
Transactions, if available, can be used to wrap around the DML operations:
* BEGIN WORK (or START TRANSACTION, depending on SQL dialect) can be used to mark the start of a database transaction, which either completes completely or not at all.
* COMMIT causes all data changes in a transaction to be made permanent.
* ROLLBACK causes all data changes since the last COMMIT or ROLLBACK to be discarded, so that the state of the data is "rolled back" to the way it was prior to those changes being requested.
COMMIT and ROLLBACK interact with areas such as transaction control and locking. Strictly, both terminate any open transaction and release any locks held on data. In the absence of a BEGIN WORK or similar statement, the semantics of SQL are implementation-dependent.
Example:
BEGIN WORK
UPDATE inventory SET quantity = quantity - 3 WHERE item = 'pants'
COMMIT
Data definition
The second group of keywords is the Data Definition Language (DDL). DDL allows the user to define new tables and associated elements. Most commercial SQL databases have proprietary extensions in their DDL, which allow control over nonstandard features of the database system. The most basic items of DDL are the CREATE,ALTER,RENAME,TRUNCATE and DROP commands:
* CREATE causes an object (a table, for example) to be created within the database.
* DROP causes an existing object within the database to be deleted, usually irretrievably.
* TRUNCATE deletes all data from a table (non-standard, but common SQL command).
* ALTER command permits the user to modify an existing object in various ways -- for example, adding a column to an existing table.
Example:
CREATE TABLE my_table (
my_field1 INT,
my_field2 VARCHAR (50),
my_field3 DATE NOT NULL,
PRIMARY KEY (my_field1, my_field2)
)
Data control
The third group of SQL keywords is the Data Control Language (DCL). DCL handles the authorization aspects of data and permits the user to control who has access to see or manipulate data within the database. Its two main keywords are:
GRANT
Authorizes one or more users to perform an operation or a set of operations on an object.
REVOKE
Removes or restricts the capability of a user to perform an operation or a set of operations.
Example:
GRANT SELECT, UPDATE ON my_table TO some_user, another_user.
Other
* ANSI-standard SQL supports double dash, --, as a single line comment identifier (some extensions also support curly brackets or C-style /* comments */ for multi-line comments).
Example:
SELECT * FROM inventory -- Retrieve everything from inventory table
* Some SQL servers allow User Defined Functions
Criticisms of SQL
Technically, SQL is a declarative computer language for use with "SQL databases". Theorists and some practitioners note that many of the original SQL features were inspired by, but in violation of, the relational model for database management and its tuple calculus realization. Recent extensions to SQL achieved relational completeness, but have worsened the violations, as documented in The Third Manifesto.
In addition, there are also some criticisms about the practical use of SQL:
* Implementations are inconsistent and, usually, incompatible between vendors. In particular date and time syntax, string concatenation, nulls, and comparison case sensitivity often vary from vendor to vendor.
* The language makes it too easy to do a Cartesian join (joining all possible combinations), which results in "run-away" result sets when WHERE clauses are mistyped. Cartesian joins are so rarely used in practice that requiring an explicit CARTESIAN keyword may be warranted.
* It is also possible to misconstruct a WHERE on an update or delete, thereby affecting more rows in a table than desired.
* SQL—and the relational model as it is—offer no standard way for handling tree-structures, i.e. rows recursively referring other rows of the same table. Oracle offers a "CONNECT BY" clause, Microsoft offers recursive joins via Common Table Expressions, other solutions are database functions which use recursion and return a row set, as possible in PostgreSQL with PL/PgSQL.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Active Server Pages (ASP) is Microsoft's server-side script engine for dynamically-generated web pages. It is marketed as an add-on to Internet Information Services (IIS). Programming ASP websites is made easier by various built-in objects. Each object corresponds to a group of frequently-used functionality useful for creating dynamic web pages. In ASP 2.0 there are six such built-in objects: Application, ASPError, Request, Response, Server, and Session. Session, for example, is a cookie-based session object that maintains variables from page to page.
Most ASP pages are written in VBScript, but any other Active Scripting engine can be selected instead by using the @Language directive or the <script language="language" runat="server">syntax. JScript (Microsoft's implementation of ECMAScript) is the other language that is usually available. PerlScript (a derivative of Perl) and others are available as third-party installable Active Scripting engines.
InstantASP and ChiliASP are technologies that run ASP without Windows Operating System. There are large open source communities on the WWW, such as ASPNuke, which produce ASP scripts, components and applications to be used for free under certain license terms.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Adobe Dreamweaver, or simply Dreamweaver, is a web development tool, originally created by Macromedia. Initial versions of the application served as simple WYSIWYG HTML editors but more recent versions have incorporated notable support for many other web technologies such as CSS, JavaScript, and various server-side scripting frameworks. The software is available for both the Mac and Windows platforms, but can also be run on Unix-like platforms through the use of emulation software such as Wine. Dreamweaver is currently owned by Adobe Systems who acquired Macromedia in 2005.
Contents
Features
As a WYSIWYG editor, Dreamweaver can hide the details of pages' HTML code from the user, making it possible for non-coders to create web pages and sites. A professional criticism of this approach is that it produces HTML pages whose file size and amount of HTML code is much larger than they should be, which can cause web browsers to perform poorly. This can be particularly true because the application makes it very easy to create table-based layouts. In addition, some web site developers have criticized Dreamweaver in the past for producing code that often does not comply with W3C standards though this has improved considerably in recent versions. Dreamweaver 8.0 (the version prior to the recently released 9.0 within CS3) performed poorly on the Acid2 Test, developed by the Web Standards Project. However, Macromedia has increased the support for CSS and other ways to lay out a page without tables in later versions of the application, with the ability to convert tables to layers and vice versa.
Adobe Dreamweaver CS3
Adobe Dreamweaver CS3
Dreamweaver allows users to preview websites in many browsers, provided that they are installed on their computer. It also has some site management tools, such as the ability to find and replace lines of text or code by whatever parameters specified across the entire site, and a templatization feature for creating multiple pages with similar structures. The behaviors panel also enables use of basic JavaScript without any coding knowledge.
With the advent of version MX, Macromedia incorporated dynamic content creation tools into Dreamweaver. In the spirit of HTML WYSIWYG tools, it allows users to connect to databases (such as MySQL and Microsoft Access) to filter and display content using scripting technologies such as Active Server Pages (ASP), ASP.NET, ColdFusion, JavaServer Pages (JSP), PHP, and more without any previous programming experience. Dreamweaver 8.0 also included support for WYSIWYG XSLT editing. Alternative solutions for web database application development are Alpha Five and FileMaker.
Dreamweaver can use "Extensions" - small programs, which any web developer can write (usually in HTML and JavaScript). Extensions provide added functionality to the software for whoever wants to download and install them. Dreamweaver is supported by a large community of extension developers who make extensions available (both commercial and free) for most web development tasks from simple rollover effects to full-featured shopping carts.
Evolution of the Computer:The first counting device was the abacus, originally from Asia. It worked on a place-value notion meaning that the place of a bead or rock on the apparatus determined how much it was worth.
1600s: John Napier discovers logarithms. Robert Bissaker invents the slide rule which will remain in popular use until 19??.
1642: Blaise Pascal, a French mathematician and philosopher, invents the first mechanical digital calculator using gears, called the Pascaline. Although this machine could perform addition and subtraction on whole numbers, it was too expensive and only Pascal himself could repare it.
1804: Joseph Marie Jacquard used punch cards to automate a weaving loom.
1812: Charles P. Babbage, the "father of the computer", discovered that many long calculations involved many similar, repeated operations. Therefore, he designed a machine, the difference engine which would be steam-powered, fully automatic and commanded by a fixed instruction program. In 1833, Babbage quit working on this machine to concentrate on the analytical engine.
1840s: Augusta Ada. "The first programmer" suggested that a binary system shouled be used for staorage rather than a decimal system.
1850s: George Boole developed Boolean logic which would later be used in the design of computer circuitry.
1890: Dr. Herman Hollerith introduced the first electromechanical, punched-card data-processing machine which was used to compile information for the 1890 U.S. census. Hollerith's tabulator became so successful that he started his own business to market it. His company would eventually become International Business Machines (IBM).
1906: The vacuum tube is invented by American physicist Lee De Forest.
1939: Dr. John V. Atanasoff and his assistant Clifford Berry build the first electronic digital computer. Their machine, the Atanasoff-Berry-Computer (ABC) provided the foundation for the advances in electronic digital computers.
1941, Konrad Zuse (recently deceased in January of 1996), from Germany, introduced the first programmable computer designed to solve complex engineering equations. This machine, called the Z3, was also the first to work on the binary system instead of the decimal system.
1943: British mathematician Alan Turing developped a hypothetical device, the Turing machine which would be designed to perform logical operation and could read and write. It would presage programmable computers. He also used vacuum technology to build British Colossus, a machine used to counteract the German code scrambling device, Enigma.
1944: Howard Aiken, in collaboration with engineers from IBM, constructed a large automatic digital sequence-controlled computer called the Harvard Mark I. This computer could handle all four arithmetic opreations, and had special built-in programs for logarithms and trigonometric functions.
1945: Dr. John von Neumann presented a paper outlining the stored-program concept.
1947: The giant ENIAC (Electrical Numerical Integrator and Calculator) machine was developped by John W. Mauchly and J. Presper Eckert, Jr. at the University of Pennsylvania. It used 18, 000 vacuums, punch-card input, weighed thirty tons and occupied a thirty-by-fifty-foot space. It wasn't programmable but was productive from 1946 to 1955 and was used to compute artillery firing tables. That same year, the transistor was invented by William Shockley, John Bardeen and Walter Brattain of Bell Labs. It would rid computers of vacuum tubes and radios.
1949: Maurice V. Wilkes built the EDSAC (Electronic Delay Storage Automatic Computer), the first stored-program computer. EDVAC (Electronic Discrete Variable Automatic Computer), the second stored-program computer was built by Mauchly, Eckert, and von Neumann. An Wang developped magnetic-core memory which Jay Forrester would reorganize to be more efficient.
1950: Turing built the ACE, considered by some to be the first programmable digital computer.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)