Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB
ÈÈÃűêÇ©£º c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 ×îÐÂÎÄÕ : c++

C++ÖÐʹÓÃsqlite

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include ".\sqlite3_lib\sqlite3.h"
 
static int _callback_exec(void * notused,int argc, char ** argv, char ** aszColName)
{
    int i;
    for ( i=0; i<argc; i++ )
    {
        printf( "%s = %s\n", aszColName[i], argv[i] == 0 ? "NUL" : argv[i] );
    }
    return 0;
}
void main(int argc,char *argv[])
{
 
const char * sSQL = "select * from animal;";
const char * sSQL1 = "insert into animal(id) values('233');";
    char * pErrMsg = 0;
    int ret = 0;
    sqlite3 * db = 0;
    ret = sqlite3_open("demo.sqb", &db);
    printf("%d\n",ret);
    if ( ret != SQLITE_OK )
    {
        fprintf(stderr, "Could not open database: %s" ......

SQLite C/C++½Ó¿Ú½éÉÜ

ÕâÆªÎÄÕÂÊÇʹÓÃSQLite C/C++½Ó¿ÚµÄÒ»¸ö¸ÅÒª½éÉܺÍÈëÃÅÖ¸ÄÏ¡£
ÓÉÓÚÔçÆÚµÄSQLiteÖ»Ö§³Ö5¸öC/C++½Ó¿Ú£¬Òò¶ø·Ç³£ÈÝÒ×ѧϰºÍʹÓ㬵«ÊÇËæ×ÅSQLite¹¦ÄܵÄÔöÇ¿£¬ÐµÄC/C++½Ó¿Ú²»¶ÏµÄÔö¼Ó½øÀ´£¬µ½ÏÖÔÚÓг¬¹ý150¸ö²»Í¬µÄAPI½Ó¿Ú¡£ÕâÍùÍùʹ³õѧÕßÍû¶øÈ´²½¡£ÐÒÔ˵ÄÊÇ£¬´ó¶àÊýSQLiteÖеÄC/C++½Ó¿ÚÊÇרÓõģ¬Òò¶øºÜÉÙ±»Ê¹Óõ½¡£¾¡¹ÜÓÐÕâô¶àµÄµ÷Óýӿڣ¬ºËÐĵÄAPIÈÔÈ»Ïà¶Ô¼òµ¥ºÍ±ãÓÚµ÷Óᣱ¾Æ¬ÎÄÕµÄÄ¿µÄ¾ÍÊÇΪÁËÄܹ»¸üÒ×ÓÚÀí½âSQLiteµÄÔË×÷Ìṩ»ù´¡µÄ֪ʶ¡£
Áíһƪ¶ÀÁ¢µÄÎĵµ¡¶The SQLite C/C++ Interface¡·¶ÔSQLiteÖеÄËùÓÐC/C++½Ó¿ÚÌṩÁËÏêϸµÄʹÓÃ˵Ã÷¡£Ò»µ©¶ÁÕßÀí½âÁËSQLiteµÄ»ù±¾²Ù×÷Ô­Àí£¬ÕâÆªÎĵµ¾ÍÓ¦µ±×÷Ϊһ±¾²Î¿¼Êֲᡣ±¾ÆªÎÄÕ½ö½öÊÇSQLiteµÄÒ»¸öÈëÃŽéÉÜ£¬¶ø²»ÊÇÍêÕûºÍȨÍþÐÔµÄSQLite API²Î¿¼Ö¸ÄÏ¡£
1.0 ºËÐĶÔÏóºÍ½Ó¿Ú
SQLÊý¾Ý¿âÒýÇæµÄ×îÖ÷ÒªÈÎÎñÊǽâÎöSQLÓï¾ä¡£ÎªÁË´ï³ÉÕâ¸öÄ¿µÄ£¬¿ª·¢ÕßÐèÒªÁ˽âÁ½¸ö¶ÔÏó£º
* Êý¾Ý¿âÁ¬½Ó¶ÔÏó£ºsqlite3
* Ô¤´¦ÀíÓï¾ä¶ÔÏó£ºsqlite3_stmt
ÑϸñÀ´½²£¬Ô¤´¦ÀíÓï¾ä¶ÔÏó²¢²»ÊDZØÐëµÄ£¬ÒòΪÄܹ»Ê¹ÓÃsqlite_exec»òÕßsqlite3_get_tableÕâЩ±ãÓÚʹÓõķâ×°½Ó¿Ú£¬¶øÕâЩ½Ó¿Ú·â×°²¢Òþ²ØÁËÔ¤´¦ÀíÓï¾ä¶ÔÏó¡£¾¡¹ÜÈç´Ë£¬¶ÔÔ¤´¦Àí¶ÔÏóµÄÀí½âÓÐÖúÓÚÎÒÃǸ ......

SQLite C/C++½Ó¿Ú½éÉÜ

ÕâÆªÎÄÕÂÊÇʹÓÃSQLite C/C++½Ó¿ÚµÄÒ»¸ö¸ÅÒª½éÉܺÍÈëÃÅÖ¸ÄÏ¡£
ÓÉÓÚÔçÆÚµÄSQLiteÖ»Ö§³Ö5¸öC/C++½Ó¿Ú£¬Òò¶ø·Ç³£ÈÝÒ×ѧϰºÍʹÓ㬵«ÊÇËæ×ÅSQLite¹¦ÄܵÄÔöÇ¿£¬ÐµÄC/C++½Ó¿Ú²»¶ÏµÄÔö¼Ó½øÀ´£¬µ½ÏÖÔÚÓг¬¹ý150¸ö²»Í¬µÄAPI½Ó¿Ú¡£ÕâÍùÍùʹ³õѧÕßÍû¶øÈ´²½¡£ÐÒÔ˵ÄÊÇ£¬´ó¶àÊýSQLiteÖеÄC/C++½Ó¿ÚÊÇרÓõģ¬Òò¶øºÜÉÙ±»Ê¹Óõ½¡£¾¡¹ÜÓÐÕâô¶àµÄµ÷Óýӿڣ¬ºËÐĵÄAPIÈÔÈ»Ïà¶Ô¼òµ¥ºÍ±ãÓÚµ÷Óᣱ¾Æ¬ÎÄÕµÄÄ¿µÄ¾ÍÊÇΪÁËÄܹ»¸üÒ×ÓÚÀí½âSQLiteµÄÔË×÷Ìṩ»ù´¡µÄ֪ʶ¡£
Áíһƪ¶ÀÁ¢µÄÎĵµ¡¶The SQLite C/C++ Interface¡·¶ÔSQLiteÖеÄËùÓÐC/C++½Ó¿ÚÌṩÁËÏêϸµÄʹÓÃ˵Ã÷¡£Ò»µ©¶ÁÕßÀí½âÁËSQLiteµÄ»ù±¾²Ù×÷Ô­Àí£¬ÕâÆªÎĵµ¾ÍÓ¦µ±×÷Ϊһ±¾²Î¿¼Êֲᡣ±¾ÆªÎÄÕ½ö½öÊÇSQLiteµÄÒ»¸öÈëÃŽéÉÜ£¬¶ø²»ÊÇÍêÕûºÍȨÍþÐÔµÄSQLite API²Î¿¼Ö¸ÄÏ¡£
1.0 ºËÐĶÔÏóºÍ½Ó¿Ú
SQLÊý¾Ý¿âÒýÇæµÄ×îÖ÷ÒªÈÎÎñÊǽâÎöSQLÓï¾ä¡£ÎªÁË´ï³ÉÕâ¸öÄ¿µÄ£¬¿ª·¢ÕßÐèÒªÁ˽âÁ½¸ö¶ÔÏó£º
* Êý¾Ý¿âÁ¬½Ó¶ÔÏó£ºsqlite3
* Ô¤´¦ÀíÓï¾ä¶ÔÏó£ºsqlite3_stmt
ÑϸñÀ´½²£¬Ô¤´¦ÀíÓï¾ä¶ÔÏó²¢²»ÊDZØÐëµÄ£¬ÒòΪÄܹ»Ê¹ÓÃsqlite_exec»òÕßsqlite3_get_tableÕâЩ±ãÓÚʹÓõķâ×°½Ó¿Ú£¬¶øÕâЩ½Ó¿Ú·â×°²¢Òþ²ØÁËÔ¤´¦ÀíÓï¾ä¶ÔÏó¡£¾¡¹ÜÈç´Ë£¬¶ÔÔ¤´¦Àí¶ÔÏóµÄÀí½âÓÐÖúÓÚÎÒÃǸ ......

SQLite C/C++½Ó¿Ú½éÉÜ

ÕâÆªÎÄÕÂÊÇʹÓÃSQLite C/C++½Ó¿ÚµÄÒ»¸ö¸ÅÒª½éÉܺÍÈëÃÅÖ¸ÄÏ¡£
ÓÉÓÚÔçÆÚµÄSQLiteÖ»Ö§³Ö5¸öC/C++½Ó¿Ú£¬Òò¶ø·Ç³£ÈÝÒ×ѧϰºÍʹÓ㬵«ÊÇËæ×ÅSQLite¹¦ÄܵÄÔöÇ¿£¬ÐµÄC/C++½Ó¿Ú²»¶ÏµÄÔö¼Ó½øÀ´£¬µ½ÏÖÔÚÓг¬¹ý150¸ö²»Í¬µÄAPI½Ó¿Ú¡£ÕâÍùÍùʹ³õѧÕßÍû¶øÈ´²½¡£ÐÒÔ˵ÄÊÇ£¬´ó¶àÊýSQLiteÖеÄC/C++½Ó¿ÚÊÇרÓõģ¬Òò¶øºÜÉÙ±»Ê¹Óõ½¡£¾¡¹ÜÓÐÕâô¶àµÄµ÷Óýӿڣ¬ºËÐĵÄAPIÈÔÈ»Ïà¶Ô¼òµ¥ºÍ±ãÓÚµ÷Óᣱ¾Æ¬ÎÄÕµÄÄ¿µÄ¾ÍÊÇΪÁËÄܹ»¸üÒ×ÓÚÀí½âSQLiteµÄÔË×÷Ìṩ»ù´¡µÄ֪ʶ¡£
Áíһƪ¶ÀÁ¢µÄÎĵµ¡¶The SQLite C/C++ Interface¡·¶ÔSQLiteÖеÄËùÓÐC/C++½Ó¿ÚÌṩÁËÏêϸµÄʹÓÃ˵Ã÷¡£Ò»µ©¶ÁÕßÀí½âÁËSQLiteµÄ»ù±¾²Ù×÷Ô­Àí£¬ÕâÆªÎĵµ¾ÍÓ¦µ±×÷Ϊһ±¾²Î¿¼Êֲᡣ±¾ÆªÎÄÕ½ö½öÊÇSQLiteµÄÒ»¸öÈëÃŽéÉÜ£¬¶ø²»ÊÇÍêÕûºÍȨÍþÐÔµÄSQLite API²Î¿¼Ö¸ÄÏ¡£
1.0 ºËÐĶÔÏóºÍ½Ó¿Ú
SQLÊý¾Ý¿âÒýÇæµÄ×îÖ÷ÒªÈÎÎñÊǽâÎöSQLÓï¾ä¡£ÎªÁË´ï³ÉÕâ¸öÄ¿µÄ£¬¿ª·¢ÕßÐèÒªÁ˽âÁ½¸ö¶ÔÏó£º
* Êý¾Ý¿âÁ¬½Ó¶ÔÏó£ºsqlite3
* Ô¤´¦ÀíÓï¾ä¶ÔÏó£ºsqlite3_stmt
ÑϸñÀ´½²£¬Ô¤´¦ÀíÓï¾ä¶ÔÏó²¢²»ÊDZØÐëµÄ£¬ÒòΪÄܹ»Ê¹ÓÃsqlite_exec»òÕßsqlite3_get_tableÕâЩ±ãÓÚʹÓõķâ×°½Ó¿Ú£¬¶øÕâЩ½Ó¿Ú·â×°²¢Òþ²ØÁËÔ¤´¦ÀíÓï¾ä¶ÔÏó¡£¾¡¹ÜÈç´Ë£¬¶ÔÔ¤´¦Àí¶ÔÏóµÄÀí½âÓÐÖúÓÚÎÒÃǸ ......

Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í

Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í
DelphiÊý¾ÝÀàÐÍC/C++
ShorInt
8λÓзûºÅÕûÊý
char
Byte
8λÎÞ·ûºÅÕûÊý
BYTE,unsigned short
SmallInt
16λÓзûºÅÕûÊý
short
Word
16λÎÞ·ûºÅÕûÊý
unsigned short
Integer,LongInt
32λÓзûºÅÕûÊý
int,long
Cardinal,LongWord/DWORD
32λÎÞ·ûºÅÕûÊý
unsigned long
Int64
64λÓзûºÅÕûÊý 
_int64
Single
4×Ö½Ú¸¡µãÊý
float
*Real48
6×Ö½Ú¸¡µãÊý
¡¡
Double
8×Ö½Ú¸¡µãÊý
double
*Extended
10×Ö½Ú¸¡µãÊý
long double
Currency
64λ»õ±ÒÀàÐÍ
¡¡
TDate/TDateTime
8×Ö½ÚÈÕÆÚ/ʱ¼ä
¡¡
Variant,OleVariant
16×ֽڿɱäÀàÐÍ
VARIANT,^Variant,^OleVariant
Char,AnsiChar
1×Ö½Ú×Ö·û
char
WideChar
2×Ö½Ú×Ö·û
WCHAR
*ShortString
¶Ì×Ö·û´®
¡¡
AnsiString/String
³¤×Ö·û´®
^AnsiString
WideString
¿í×Ö·û´®
^WideString
PChar,PAnsiChar
NULL½áÊøµÄ×Ö·û´®
char*
PWideChar
NULL½áÊøµÄ¿í×Ö·û´®
LPCWSTR
Boolean,ByteBool
1×Ö½Ú²¼¶ûÀàÐÍ
ÈκÎ1×Ö½Ú
WordBool
2×Ö½Ú²¼¶ûÀàÐÍ
ÈκÎ2×Ö½Ú
BOOL,LongBool
4×Ö½Ú²¼¶ûÀàÐÍ
BOOL
×¢£ºÓÐ*ǰ׺µÄÊÇÏòǰ¼æÈÝÀàÐÍ£»ÓÐ^ǰ׺µÄÊÇC++BuilderÌØ ......

Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í

Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í
DelphiÊý¾ÝÀàÐÍC/C++
ShorInt
8λÓзûºÅÕûÊý
char
Byte
8λÎÞ·ûºÅÕûÊý
BYTE,unsigned short
SmallInt
16λÓзûºÅÕûÊý
short
Word
16λÎÞ·ûºÅÕûÊý
unsigned short
Integer,LongInt
32λÓзûºÅÕûÊý
int,long
Cardinal,LongWord/DWORD
32λÎÞ·ûºÅÕûÊý
unsigned long
Int64
64λÓзûºÅÕûÊý 
_int64
Single
4×Ö½Ú¸¡µãÊý
float
*Real48
6×Ö½Ú¸¡µãÊý
¡¡
Double
8×Ö½Ú¸¡µãÊý
double
*Extended
10×Ö½Ú¸¡µãÊý
long double
Currency
64λ»õ±ÒÀàÐÍ
¡¡
TDate/TDateTime
8×Ö½ÚÈÕÆÚ/ʱ¼ä
¡¡
Variant,OleVariant
16×ֽڿɱäÀàÐÍ
VARIANT,^Variant,^OleVariant
Char,AnsiChar
1×Ö½Ú×Ö·û
char
WideChar
2×Ö½Ú×Ö·û
WCHAR
*ShortString
¶Ì×Ö·û´®
¡¡
AnsiString/String
³¤×Ö·û´®
^AnsiString
WideString
¿í×Ö·û´®
^WideString
PChar,PAnsiChar
NULL½áÊøµÄ×Ö·û´®
char*
PWideChar
NULL½áÊøµÄ¿í×Ö·û´®
LPCWSTR
Boolean,ByteBool
1×Ö½Ú²¼¶ûÀàÐÍ
ÈκÎ1×Ö½Ú
WordBool
2×Ö½Ú²¼¶ûÀàÐÍ
ÈκÎ2×Ö½Ú
BOOL,LongBool
4×Ö½Ú²¼¶ûÀàÐÍ
BOOL
×¢£ºÓÐ*ǰ׺µÄÊÇÏòǰ¼æÈÝÀàÐÍ£»ÓÐ^ǰ׺µÄÊÇC++BuilderÌØ ......

Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í

Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í
DelphiÊý¾ÝÀàÐÍC/C++
ShorInt
8λÓзûºÅÕûÊý
char
Byte
8λÎÞ·ûºÅÕûÊý
BYTE,unsigned short
SmallInt
16λÓзûºÅÕûÊý
short
Word
16λÎÞ·ûºÅÕûÊý
unsigned short
Integer,LongInt
32λÓзûºÅÕûÊý
int,long
Cardinal,LongWord/DWORD
32λÎÞ·ûºÅÕûÊý
unsigned long
Int64
64λÓзûºÅÕûÊý 
_int64
Single
4×Ö½Ú¸¡µãÊý
float
*Real48
6×Ö½Ú¸¡µãÊý
¡¡
Double
8×Ö½Ú¸¡µãÊý
double
*Extended
10×Ö½Ú¸¡µãÊý
long double
Currency
64λ»õ±ÒÀàÐÍ
¡¡
TDate/TDateTime
8×Ö½ÚÈÕÆÚ/ʱ¼ä
¡¡
Variant,OleVariant
16×ֽڿɱäÀàÐÍ
VARIANT,^Variant,^OleVariant
Char,AnsiChar
1×Ö½Ú×Ö·û
char
WideChar
2×Ö½Ú×Ö·û
WCHAR
*ShortString
¶Ì×Ö·û´®
¡¡
AnsiString/String
³¤×Ö·û´®
^AnsiString
WideString
¿í×Ö·û´®
^WideString
PChar,PAnsiChar
NULL½áÊøµÄ×Ö·û´®
char*
PWideChar
NULL½áÊøµÄ¿í×Ö·û´®
LPCWSTR
Boolean,ByteBool
1×Ö½Ú²¼¶ûÀàÐÍ
ÈκÎ1×Ö½Ú
WordBool
2×Ö½Ú²¼¶ûÀàÐÍ
ÈκÎ2×Ö½Ú
BOOL,LongBool
4×Ö½Ú²¼¶ûÀàÐÍ
BOOL
×¢£ºÓÐ*ǰ׺µÄÊÇÏòǰ¼æÈÝÀàÐÍ£»ÓÐ^ǰ׺µÄÊÇC++BuilderÌØ ......

¾­µäC/C++ÃæÊÔÌâ

1.½éÉÜÒ»ÏÂSTL£¬Ïêϸ˵Ã÷STLÈçºÎʵÏÖvector¡£
Answer:
     STL (±ê׼ģ°æ¿â£¬Standard Template Library)ËüÓÉÈÝÆ÷Ëã·¨µü´úÆ÷×é³É¡£
     STLÓÐÒÔϵÄһЩÓŵ㣺
     ¿ÉÒÔ·½±ãÈÝÒ×µØÊµÏÖËÑË÷Êý¾Ý»ò¶ÔÊý¾ÝÅÅÐòµÈһϵÁеÄËã·¨£»
     µ÷ÊÔ³ÌÐòʱ¸ü¼Ó°²È«ºÍ·½±ã£»
     ¼´Ê¹ÊÇÈËÃÇÓÃSTLÔÚUNIXƽ̨ÏÂдµÄ´úÂëÄãÒ²¿ÉÒÔºÜÈÝÒ×µØÀí½â£¨ÒòΪSTLÊÇ¿çÆ½Ì¨µÄ£©¡£
     vectorʵÖÊÉϾÍÊÇÒ»¸ö¶¯Ì¬Êý×飬»á¸ù¾ÝÊý¾ÝµÄÔö¼Ó,¶¯Ì¬µÄÔö¼ÓÊý×é¿Õ¼ä¡£
2.Èç¹ûÓÃVC¿ª·¢³ÌÐò£¬³£¼ûÕâô¼¸¸ö´íÎó£¬C2001,c2005,c2011,ÕâЩ´íÎóµÄÔ­ÒòÊÇʲô¡£
Answer:
 ÔÚѧϰVC++µÄ¹ý³ÌÖУ¬Óöµ½µÄLNK2001´íÎóµÄ´íÎóÏûÏ¢Ö÷ҪΪ£º
 unresolved external symbol “symbol”£¨²»È·¶¨µÄÍⲿ“·ûºÅ”£©¡£
    Èç¹ûÁ¬½Ó³ÌÐò²»ÄÜÔÚËùÓеĿâºÍÄ¿±êÎļþÄÚÕÒµ½ËùÒýÓõĺ¯Êý¡¢±äÁ¿»ò±êÇ©£¬½«²úÉú´Ë´íÎóÏûÏ¢¡£
     Ò»°ãÀ´Ëµ£¬·¢Éú´íÎóµÄÔ­ÒòÓÐÁ½¸ö£ºÒ»ÊÇËùÒýÓõĺ¯Êý¡¢±äÁ¿²»´ ......

¾­µäC/C++ÃæÊÔÌâ

1.½éÉÜÒ»ÏÂSTL£¬Ïêϸ˵Ã÷STLÈçºÎʵÏÖvector¡£
Answer:
     STL (±ê׼ģ°æ¿â£¬Standard Template Library)ËüÓÉÈÝÆ÷Ëã·¨µü´úÆ÷×é³É¡£
     STLÓÐÒÔϵÄһЩÓŵ㣺
     ¿ÉÒÔ·½±ãÈÝÒ×µØÊµÏÖËÑË÷Êý¾Ý»ò¶ÔÊý¾ÝÅÅÐòµÈһϵÁеÄËã·¨£»
     µ÷ÊÔ³ÌÐòʱ¸ü¼Ó°²È«ºÍ·½±ã£»
     ¼´Ê¹ÊÇÈËÃÇÓÃSTLÔÚUNIXƽ̨ÏÂдµÄ´úÂëÄãÒ²¿ÉÒÔºÜÈÝÒ×µØÀí½â£¨ÒòΪSTLÊÇ¿çÆ½Ì¨µÄ£©¡£
     vectorʵÖÊÉϾÍÊÇÒ»¸ö¶¯Ì¬Êý×飬»á¸ù¾ÝÊý¾ÝµÄÔö¼Ó,¶¯Ì¬µÄÔö¼ÓÊý×é¿Õ¼ä¡£
2.Èç¹ûÓÃVC¿ª·¢³ÌÐò£¬³£¼ûÕâô¼¸¸ö´íÎó£¬C2001,c2005,c2011,ÕâЩ´íÎóµÄÔ­ÒòÊÇʲô¡£
Answer:
 ÔÚѧϰVC++µÄ¹ý³ÌÖУ¬Óöµ½µÄLNK2001´íÎóµÄ´íÎóÏûÏ¢Ö÷ҪΪ£º
 unresolved external symbol “symbol”£¨²»È·¶¨µÄÍⲿ“·ûºÅ”£©¡£
    Èç¹ûÁ¬½Ó³ÌÐò²»ÄÜÔÚËùÓеĿâºÍÄ¿±êÎļþÄÚÕÒµ½ËùÒýÓõĺ¯Êý¡¢±äÁ¿»ò±êÇ©£¬½«²úÉú´Ë´íÎóÏûÏ¢¡£
     Ò»°ãÀ´Ëµ£¬·¢Éú´íÎóµÄÔ­ÒòÓÐÁ½¸ö£ºÒ»ÊÇËùÒýÓõĺ¯Êý¡¢±äÁ¿²»´ ......

³£ÓõÄC/C++¹¤³ÌMakefileÄ£°å

תÌû£ºÒ»»ÔµÄÎÄÕÂ
ÔÚLinuxÏÂ×ö¿ª·¢ÄÑÃâÒª½Ó´¥makefile£¬Õû¸öÏîÄ¿µÄ¹¹½¨¶¼ÒÀÀµÓÚËü¡£100¸ödeveloperÓÐ100ÖÖmakefileµÄд·¨£¬ÔÚÒ»¸ö½Ï´óµÄÏîÄ¿ÖУ¬¸÷ÖÖ¸÷ÑùµÄmakefileÎÞÂÛÔÚ¿ª·¢¡¢ºóÆÚά»¤»¹ÊÇÕû¸öϵͳµÄ³ÖÐø¼¯³É¶¼ÊÇÒ»¸ö¸ºµ£¡£
ÓÐÐÒ²ÎÓëÖØ¹¹Ò»¸öÒÅÁôϵͳµÄmakefile£¬ÒÔÏÂÊÇһЩÐĵúÍÒ»¸ömakefileÄ£°å¡£
ÖØ¹¹Ä¿µÄ£º
1.ÇåÎúÒ×¶®¡¢ÈÝÒ×ά»¤
2.·½±ãϵͳµÄ³ÖÐø¼¯³É
ÖØ¹¹Ô­Ôò£º
1.×ÓÄ£¿émakefileÄ£°å»¯
2.ÍⲿÒÀÀµ¡¢Í¨Óú궨Ò弯Öл¯
3.ÖмäºÍ×îÖÕÊä³ö¼¯ÖУ¬±ãÓÚϵͳ¹¹½¨
ÏÂÃæÊÇ×ܽá³öµÄÒ»¸ömakefileÄ£°å£¬ÎÒÔÚÈÕ³£µÄ¿ª·¢Öж¼ÓÃËü£¬ÆäÖмÓÈëÁËÏêϸµÄ×¢ÊÍ¡£
view plaincopy to clipboardprint?
#Get the ROOT_PATH which common files located, assuming this makefile located in $(ROOT_PATH)/src/sub_module
ROOT_PATH = $(shell cd ../..; pwd)
#Where define the path of third party modules
include $(ROOT_PATH)/path
#Where define common macros such as CC=gcc, CXX=g++ and so on
include $(ROOT_PATH)/common
#Set target output path and the path of intermidiate object
#The path macros should include in $(ROOT_PATH)/path
OUT_PATH ......

³£ÓõÄC/C++¹¤³ÌMakefileÄ£°å

תÌû£ºÒ»»ÔµÄÎÄÕÂ
ÔÚLinuxÏÂ×ö¿ª·¢ÄÑÃâÒª½Ó´¥makefile£¬Õû¸öÏîÄ¿µÄ¹¹½¨¶¼ÒÀÀµÓÚËü¡£100¸ödeveloperÓÐ100ÖÖmakefileµÄд·¨£¬ÔÚÒ»¸ö½Ï´óµÄÏîÄ¿ÖУ¬¸÷ÖÖ¸÷ÑùµÄmakefileÎÞÂÛÔÚ¿ª·¢¡¢ºóÆÚά»¤»¹ÊÇÕû¸öϵͳµÄ³ÖÐø¼¯³É¶¼ÊÇÒ»¸ö¸ºµ£¡£
ÓÐÐÒ²ÎÓëÖØ¹¹Ò»¸öÒÅÁôϵͳµÄmakefile£¬ÒÔÏÂÊÇһЩÐĵúÍÒ»¸ömakefileÄ£°å¡£
ÖØ¹¹Ä¿µÄ£º
1.ÇåÎúÒ×¶®¡¢ÈÝÒ×ά»¤
2.·½±ãϵͳµÄ³ÖÐø¼¯³É
ÖØ¹¹Ô­Ôò£º
1.×ÓÄ£¿émakefileÄ£°å»¯
2.ÍⲿÒÀÀµ¡¢Í¨Óú궨Ò弯Öл¯
3.ÖмäºÍ×îÖÕÊä³ö¼¯ÖУ¬±ãÓÚϵͳ¹¹½¨
ÏÂÃæÊÇ×ܽá³öµÄÒ»¸ömakefileÄ£°å£¬ÎÒÔÚÈÕ³£µÄ¿ª·¢Öж¼ÓÃËü£¬ÆäÖмÓÈëÁËÏêϸµÄ×¢ÊÍ¡£
view plaincopy to clipboardprint?
#Get the ROOT_PATH which common files located, assuming this makefile located in $(ROOT_PATH)/src/sub_module
ROOT_PATH = $(shell cd ../..; pwd)
#Where define the path of third party modules
include $(ROOT_PATH)/path
#Where define common macros such as CC=gcc, CXX=g++ and so on
include $(ROOT_PATH)/common
#Set target output path and the path of intermidiate object
#The path macros should include in $(ROOT_PATH)/path
OUT_PATH ......

C/C++ÖÐʹÓÃÕýÔò±í´ïʽ

Í·Îļþregex.hÖж¨ÒåÁËc/c++ʹÓÃÕýÔò±í´ïʽµÄº¯Êý£º regcomp(), regexec(), regerror(), and regfree() ¡£regcomp()±àÒëÕýÔò±í´ïʽ£¬regexec()Æ¥ÅäÕýÔò±í´ïʽ£¬ regfree()ÊÍ·ÅÕýÔò±í´ïʽ£¬regerror()±¨¸æÕýÔò±í´ïʽ´íÎóÐÅÏ¢¡£Ê¹Ó÷½·¨ÈçÏ´úÂëËùʾ£º
static string merge_path(const string base, const string path)
{
static regex_t re;


static int initialized = 0;
regmatch_t pm[1];
string p, s;
size_t len;
assert(*path != '/');
if (base && (p = strrchr(base, '/'))) {
newarray(s, (p - base) + strlen(path) + 2);
strncpy(s, base, (p - base) + 1);
strcpy(s + ((p - base) + 1), path);
} else {
newarray(s, strlen(path) + 2);
#if 0
s[0] = '/';
strcpy(s + 1, path);
#else
strcpy(s, path);
#endif
}
/* Replace all substrings of form "/xxx/../" with "/" */
if (! initialized) {
assert(regcomp(&re, "/[^/]+/\\.\\./", REG_EXTENDED) == 0);
initialized = 1;
}
len = strlen(s);


while (rege ......

C/C++ÖÐʹÓÃÕýÔò±í´ïʽ

Í·Îļþregex.hÖж¨ÒåÁËc/c++ʹÓÃÕýÔò±í´ïʽµÄº¯Êý£º regcomp(), regexec(), regerror(), and regfree() ¡£regcomp()±àÒëÕýÔò±í´ïʽ£¬regexec()Æ¥ÅäÕýÔò±í´ïʽ£¬ regfree()ÊÍ·ÅÕýÔò±í´ïʽ£¬regerror()±¨¸æÕýÔò±í´ïʽ´íÎóÐÅÏ¢¡£Ê¹Ó÷½·¨ÈçÏ´úÂëËùʾ£º
static string merge_path(const string base, const string path)
{
static regex_t re;


static int initialized = 0;
regmatch_t pm[1];
string p, s;
size_t len;
assert(*path != '/');
if (base && (p = strrchr(base, '/'))) {
newarray(s, (p - base) + strlen(path) + 2);
strncpy(s, base, (p - base) + 1);
strcpy(s + ((p - base) + 1), path);
} else {
newarray(s, strlen(path) + 2);
#if 0
s[0] = '/';
strcpy(s + 1, path);
#else
strcpy(s, path);
#endif
}
/* Replace all substrings of form "/xxx/../" with "/" */
if (! initialized) {
assert(regcomp(&re, "/[^/]+/\\.\\./", REG_EXTENDED) == 0);
initialized = 1;
}
len = strlen(s);


while (rege ......
×ܼǼÊý:969; ×ÜÒ³Êý:162; ÿҳ6 Ìõ; Ê×Ò³ ÉÏÒ»Ò³ [139] [140] [141] [142] 143 [144] [145] [146] [147] [148]  ÏÂÒ»Ò³ βҳ
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ