ΪÁËÓÃvcдһ¸ö×î¼òµ¥µÄ socket ³ÌÐò£¬»¨·ÑÁËÒ»¸öÏÂÎçµÄʱ¼ä£¬¹ý³ÌÖгöÏֵĴíÎóÓУº
'SOCKET' : illegal use of this type as an expression
syntax error : missing ';' before 'type'
syntax error : identifier 'InitWinsock' --> bool InitWinsock()
¼ÈȻҪ×ö socket ³ÌÐò£¬ #include <winsock.h> ÊÇ ±Ø²»¿ÉÉٵģ¬ÒÔ¼° ws2_32.lib£¬µ«ÎÊÌâ²»³öÔÚÕâÀï¡£
¸ÃÎļþÈôÊÇ .cpp ºó׺¿É³É¹¦±àÒ룬Ȼ¶øÈôÊÇ .c ¾Í³öÏÖÉÏÊö´íÎ󣬿ɼû£¬Õâ±ãÊÇ cÓëc++µÄÇø±ð¡£
Ê×ÏÈ£¬Òª±£Ö¤ËùÓÐµÄ ±äÁ¿ÉùÃ÷ λÓÚ³ÌÐò×îÇ°Ãæ£¬
int i; Ò²ÒªÔÚ
int j = 5; Ç°Ãæ£»
Æä´Î£¬winsock.h ÖÐÓÐSOCKETµÄºê¶¨Ò壬 Ҫô´óд£¬ÒªÃ´ struct socket£¬Á½ÕßÏàͬ£»
È»ºó£¬ÔÚCÓïÑÔÖУ¬Ã»ÓÐboolÀàÐÍ£¬Ö»ÊÇÔں궨ÒåÖÐÓÐ #define int BOOL£¬ÒÔ¼° #define TRUE 1 µÈ¡£
×îºó£¬ÔÚ¸üÕýËùÓдíÎóºó£¬ÎÒÈ¥³ýÁË windows debug µÈÖÐws2_32.lib£¬ÒÀÈ»¿ÉÒÔÔËÐУ¬²»ÖªºÎ¹Ê£¿£¡
×ÛÉÏËùÊö£¬CÓëC++»¹ÊÇÓв»ÉÙÇø±ðµÄ¡£
ËäÈ»¸üÕýÁË´íÎ󣬵«ÔÒò²»ÉõÁ˽⣬Íû¸ßÊÖÖ¸µãÒ»¶þ¡£ ......
ΪÁËÓÃvcдһ¸ö×î¼òµ¥µÄ socket ³ÌÐò£¬»¨·ÑÁËÒ»¸öÏÂÎçµÄʱ¼ä£¬¹ý³ÌÖгöÏֵĴíÎóÓУº
'SOCKET' : illegal use of this type as an expression
syntax error : missing ';' before 'type'
syntax error : identifier 'InitWinsock' --> bool InitWinsock()
¼ÈȻҪ×ö socket ³ÌÐò£¬ #include <winsock.h> ÊÇ ±Ø²»¿ÉÉٵģ¬ÒÔ¼° ws2_32.lib£¬µ«ÎÊÌâ²»³öÔÚÕâÀï¡£
¸ÃÎļþÈôÊÇ .cpp ºó׺¿É³É¹¦±àÒ룬Ȼ¶øÈôÊÇ .c ¾Í³öÏÖÉÏÊö´íÎ󣬿ɼû£¬Õâ±ãÊÇ cÓëc++µÄÇø±ð¡£
Ê×ÏÈ£¬Òª±£Ö¤ËùÓÐµÄ ±äÁ¿ÉùÃ÷ λÓÚ³ÌÐò×îÇ°Ãæ£¬
int i; Ò²ÒªÔÚ
int j = 5; Ç°Ãæ£»
Æä´Î£¬winsock.h ÖÐÓÐSOCKETµÄºê¶¨Ò壬 Ҫô´óд£¬ÒªÃ´ struct socket£¬Á½ÕßÏàͬ£»
È»ºó£¬ÔÚCÓïÑÔÖУ¬Ã»ÓÐboolÀàÐÍ£¬Ö»ÊÇÔں궨ÒåÖÐÓÐ #define int BOOL£¬ÒÔ¼° #define TRUE 1 µÈ¡£
×îºó£¬ÔÚ¸üÕýËùÓдíÎóºó£¬ÎÒÈ¥³ýÁË windows debug µÈÖÐws2_32.lib£¬ÒÀÈ»¿ÉÒÔÔËÐУ¬²»ÖªºÎ¹Ê£¿£¡
×ÛÉÏËùÊö£¬CÓëC++»¹ÊÇÓв»ÉÙÇø±ðµÄ¡£
ËäÈ»¸üÕýÁË´íÎ󣬵«ÔÒò²»ÉõÁ˽⣬Íû¸ßÊÖÖ¸µãÒ»¶þ¡£ ......
GCC Ö§³ÖÁËÐí¶à²»Í¬µÄÓïÑÔ£¬°üÀ¨ C¡¢C++¡¢Ada¡¢Fortran¡¢Objective C,Perl¡¢Python ºÍ Ruby£¬ÉõÖÁ»¹ÓÐJava¡£
¡¡¡¡Linux Äں˺ÍÐí¶àÆäËû×ÔÓÉÈí¼þÒÔ¼°¿ª·ÅÔ´ÂëÓ¦ÓóÌÐò¶¼ÊÇÓà C ÓïÑÔ±àд²¢Ê¹Óà GCC ±àÒëµÄ¡£
¡¡¡¡±àÒëC++³ÌÐò£º
¡¡¡¡-c Ö»±àÒë²»Á¬½Ó
¡¡¡¡g++ file1 -c -o file1.o
¡¡¡¡g++ file2 -c -o file2.o
¡¡¡¡g++ file1.o file.o -o exec
¡¡¡¡g++ -c a.cpp ±àÒë
¡¡¡¡g++ -o a a.o Éú³É¿ÉÖ´ÐÐÎļþ
¡¡¡¡Ò²¿ÉÒÔ g++ -o a a.cppÖ±½ÓÉú³É¿ÉÖ´ÐÐÎļþ¡£
¡¡¡¡1. ±àÒëµ¥¸öÔ´Îļþ
¡¡¡¡ÎªÁ˽øÐвâÊÔ£¬Äã¿ÉÒÔ´´½¨“Hello World”³ÌÐò£º
¡¡¡¡#include <stdio.h>
¡¡¡¡#include <stdlib.h>
¡¡¡¡int main(int argc, char **argv)
¡¡¡¡{
¡¡¡¡printf(“Hello world!\n”);
¡¡¡¡exit(0);
¡¡¡¡}
¡¡¡¡Ê¹ÓÃÈçÏÂÃüÁî±àÒë²¢²âÊÔÕâ¸ö´úÂ룺
¡¡¡¡# gcc -o hello hello.c
¡¡¡¡# ./hello
¡¡¡¡Hello wordl!
¡¡¡¡ÔÚĬÈÏÇé¿öϲúÉúµÄ¿ÉÖ´ÐгÌÐòÃûΪa.out£¬µ«Äãͨ³£¿ÉÒÔͨ¹ý gcc µÄ“-o”Ñ¡ÏîÀ´Ö¸ ......
GCC Ö§³ÖÁËÐí¶à²»Í¬µÄÓïÑÔ£¬°üÀ¨ C¡¢C++¡¢Ada¡¢Fortran¡¢Objective C,Perl¡¢Python ºÍ Ruby£¬ÉõÖÁ»¹ÓÐJava¡£
¡¡¡¡Linux Äں˺ÍÐí¶àÆäËû×ÔÓÉÈí¼þÒÔ¼°¿ª·ÅÔ´ÂëÓ¦ÓóÌÐò¶¼ÊÇÓà C ÓïÑÔ±àд²¢Ê¹Óà GCC ±àÒëµÄ¡£
¡¡¡¡±àÒëC++³ÌÐò£º
¡¡¡¡-c Ö»±àÒë²»Á¬½Ó
¡¡¡¡g++ file1 -c -o file1.o
¡¡¡¡g++ file2 -c -o file2.o
¡¡¡¡g++ file1.o file.o -o exec
¡¡¡¡g++ -c a.cpp ±àÒë
¡¡¡¡g++ -o a a.o Éú³É¿ÉÖ´ÐÐÎļþ
¡¡¡¡Ò²¿ÉÒÔ g++ -o a a.cppÖ±½ÓÉú³É¿ÉÖ´ÐÐÎļþ¡£
¡¡¡¡1. ±àÒëµ¥¸öÔ´Îļþ
¡¡¡¡ÎªÁ˽øÐвâÊÔ£¬Äã¿ÉÒÔ´´½¨“Hello World”³ÌÐò£º
¡¡¡¡#include <stdio.h>
¡¡¡¡#include <stdlib.h>
¡¡¡¡int main(int argc, char **argv)
¡¡¡¡{
¡¡¡¡printf(“Hello world!\n”);
¡¡¡¡exit(0);
¡¡¡¡}
¡¡¡¡Ê¹ÓÃÈçÏÂÃüÁî±àÒë²¢²âÊÔÕâ¸ö´úÂ룺
¡¡¡¡# gcc -o hello hello.c
¡¡¡¡# ./hello
¡¡¡¡Hello wordl!
¡¡¡¡ÔÚĬÈÏÇé¿öϲúÉúµÄ¿ÉÖ´ÐгÌÐòÃûΪa.out£¬µ«Äãͨ³£¿ÉÒÔͨ¹ý gcc µÄ“-o”Ñ¡ÏîÀ´Ö¸ ......
Ò»¡¢»ñÈ¡ÈÕÀúʱ¼ä
time_tÊǶ¨ÒåÔÚtime.hÖеÄÒ»¸öÀàÐÍ£¬±íʾһ¸öÈÕÀúʱ¼ä£¬Ò²¾ÍÊÇ´Ó1970Äê1ÔÂ1ÈÕ0ʱ0·Ö0Ãëµ½´ËʱµÄÃëÊý£¬ÔÐÍÊÇ£º
typedef long time_t; /* time value */
¿ÉÒÔ¿´³ötime_tÆäʵÊÇÒ»¸ö³¤ÕûÐÍ£¬ÓÉÓÚ³¤ÕûÐÍÄܱíʾµÄÊýÖµÓÐÏÞ£¬Òò´ËËüÄܱíʾµÄ×î³Ùʱ¼äÊÇ2038Äê1ÔÂ18ÈÕ19ʱ14·Ö07Ãë¡£
º¯Êýtime¿ÉÒÔ»ñÈ¡µ±Ç°ÈÕÀúʱ¼äʱ¼ä£¬timeµÄ¶¨Ò壺
time_t time(time_t *)
#include <iostream>
#include <time.h>
using namespace std;
int main(void)
{
time_t nowtime;
nowtime = time(NULL); //»ñÈ¡µ±Ç°Ê±¼ä
cout << nowtime << endl;
return 0;
}
Êä³ö½á¹û:1268575163
¶þ¡¢»ñÈ¡±¾µØÊ±¼ä
time_tÖ»ÊÇÒ»¸ö³¤ÕûÐÍ£¬²»·ûºÏÎÒÃǵÄʹÓÃϰ¹ß£¬ÐèҪת»»³É±¾µØÊ±¼ä£¬¾ÍÒªÓõ½tm½á¹¹£¬time.hÖнṹtmµÄÔÐÍÊÇ£º
struct tm {
int tm_sec; /* seconds after the minute - [0,59] */
int tm_min; /* minutes after th ......
Ò»¡¢»ñÈ¡ÈÕÀúʱ¼ä
time_tÊǶ¨ÒåÔÚtime.hÖеÄÒ»¸öÀàÐÍ£¬±íʾһ¸öÈÕÀúʱ¼ä£¬Ò²¾ÍÊÇ´Ó1970Äê1ÔÂ1ÈÕ0ʱ0·Ö0Ãëµ½´ËʱµÄÃëÊý£¬ÔÐÍÊÇ£º
typedef long time_t; /* time value */
¿ÉÒÔ¿´³ötime_tÆäʵÊÇÒ»¸ö³¤ÕûÐÍ£¬ÓÉÓÚ³¤ÕûÐÍÄܱíʾµÄÊýÖµÓÐÏÞ£¬Òò´ËËüÄܱíʾµÄ×î³Ùʱ¼äÊÇ2038Äê1ÔÂ18ÈÕ19ʱ14·Ö07Ãë¡£
º¯Êýtime¿ÉÒÔ»ñÈ¡µ±Ç°ÈÕÀúʱ¼äʱ¼ä£¬timeµÄ¶¨Ò壺
time_t time(time_t *)
#include <iostream>
#include <time.h>
using namespace std;
int main(void)
{
time_t nowtime;
nowtime = time(NULL); //»ñÈ¡µ±Ç°Ê±¼ä
cout << nowtime << endl;
return 0;
}
Êä³ö½á¹û:1268575163
¶þ¡¢»ñÈ¡±¾µØÊ±¼ä
time_tÖ»ÊÇÒ»¸ö³¤ÕûÐÍ£¬²»·ûºÏÎÒÃǵÄʹÓÃϰ¹ß£¬ÐèҪת»»³É±¾µØÊ±¼ä£¬¾ÍÒªÓõ½tm½á¹¹£¬time.hÖнṹtmµÄÔÐÍÊÇ£º
struct tm {
int tm_sec; /* seconds after the minute - [0,59] */
int tm_min; /* minutes after th ......
Á´½Óָʾ·ûextern C
Èç¹û³ÌÐòԱϣÍûµ÷ÓÃÆäËû³ÌÐòÉè¼ÆÓïÑÔÓÈÆäÊÇC дµÄº¯ÊýÄÇôµ÷Óú¯Êýʱ±ØÐë
¸æËß±àÒëÆ÷ʹÓò»Í¬µÄÒªÇóÀýÈçµ±ÕâÑùµÄº¯Êý±»µ÷ÓÃʱº¯ÊýÃû»ò²ÎÊýÅÅÁеÄ˳Ðò¿ÉÄÜ
²»Í¬ÎÞÂÛÊÇC++º¯Êýµ÷ÓÃËü»¹ÊÇÓÃÆäËûÓïÑÔдµÄº¯Êýµ÷ÓÃËü
³ÌÐòÔ±ÓÃÁ´½Óָʾ·ûlinkage directive ¸æËß±àÒëÆ÷¸Ãº¯ÊýÊÇÓÃÆäËûµÄ³ÌÐòÉè¼ÆÓïÑÔ
±àдµÄÁ´½Óָʾ·ûÓÐÁ½ÖÖÐÎʽ¼È¿ÉÒÔÊǵ¥Ò»Óï¾äsingle statement ÐÎʽҲ¿ÉÒÔÊǸ´
ºÏÓï¾äcompound statement ÐÎʽ
// µ¥Ò»Óï¾äÐÎʽµÄÁ´½Óָʾ·û
extern "C" void exit(int);
// ¸´ºÏÓï¾äÐÎʽµÄÁ´½Óָʾ·û
extern "C" {
int printf( const char* ... );
int scanf( const char* ... );
}
// ¸´ºÏÓï¾äÐÎʽµÄÁ´½Óָʾ·û
extern "C" {
#include <cmath>
}
Á´½Óָʾ·ûµÄµÚÒ»ÖÖÐÎʽÓɹؼü×Öextern ºó¸úÒ»¸ö×Ö·û´®³£Á¿ÒÔ¼°Ò»¸öÆÕͨµÄº¯Êý
ÉùÃ÷¹¹³ÉËäÈ»º¯ÊýÊÇÓÃÁíÍâÒ»ÖÖÓïÑÔ±àдµÄµ«µ÷ÓÃËüÈÔÈ»ÐèÒªÀàÐͼì²éÀýÈç±àÒëÆ÷
»á¼ì²é´«µÝ¸øº¯Êýexit()µÄʵ²ÎµÄÀàÐÍÊÇ·ñÊÇint »òÕßÄܹ»ÒþʽµØ×ª»»³Éint ÐÍ
¶à¸öº¯ÊýÉùÃ÷¿ÉÒÔÓû¨À¨ºÅ°üº¬ÔÚÁ´½Óָʾ·û¸´ºÏÓï¾äÖÐÕâÊÇÁ´½Óָʾ·ûµÄµÚ¶þÖÖÐÎ
ʽ»¨Õкű»ÓÃ×÷·Ö¸î·û±íʾÁ´½Óָʾ·ûÓ¦ ......
1.Ê×ÏÈÊÇ»ñµÃlinuxÄÚºËÔ´Â룬ºÃÏñÊÇ·Ï»°£¬ÏÂÔØµØÖ·ÈçÏ£ºftp://ftp.kernel.org/pub/linux/kernel/v2.6/ÏÂÔØ£º
linux-2.6.16.22.tar.bz2 patch-2.6.22.6.bz2
ÉÏÃæÒ»²½ÐèҪ˵Ã÷µÄÊÇÒ»°ã¶øÑÔ£¬linuxÄں˵ĸ÷¸ö²¹¶¡ÎļþÊǸù¾Ýij¸ölinuxÄں˵İ汾ºÅÀ´×÷µÄpatch¡£
½«ÉÏÃæµÄÁ½¸öѹËõÎļþ½âѹ:
tar jxvf linux-2.6.22.tar.bz2
tar jxvf patch-2.6.22.6.bz2
cd linux-2.6.22
patch -p1 < ../patch-2.6.22.6
2.linuxÄÚºËÔ´Âë½á¹¹ºÍMakefile·ÖÎö
linuxÄÚºËÔ´ÂëµÄ½á¹¹±È½ÏÇåÎú£¬ÎҾͲ»ÂÞàÂÁË£¬Èç¹û¶ÔÓÚlinuxÔ´ÂëµÄ½á¹¹²»ÊǺÜÁ˽âµÄ»°£¬¿ÉÒԲο¼ÏÂÃæµÄÎÄÕÂ
http://www.kerneltravel.net/kernel-book/%E7%AC%AC%E4%B8%80%E7%AB%A0%E8%B5%B0%E8%BF%9Blinux/1.6.2.htm
¶ÔÓÚÒÆÖ²linuxµ½s3c2410¶øÑÔ£¬Ö÷ÒªµÄ¹¤×÷Ŀ¼ÊÇ/arch/arm/Ï¡£
ÔÚwindowsÖдó¶àÊÇIDEÀ´¸ºÔðÏîÄ¿µÄ¹ÜÀí£¬µ«ÊÇÔÚlinuxÖÐÖ÷ÒªÊÇͨ¹ýMakefileÀ´ÊµÏÖÏàÓ¦µÄ¹¦ÄÜ¡£MakefiieÖ÷ÒªÓÐÏÂÃæµÄ
Èý¸ö×÷Óãº
1.Ê×ÏȾö¶¨±àÒëÄÇЩÎļþ
2.ÔõÑù±àÒëÕâЩÎļþ
3.ÈçºÎÁ´½ÓÕâЩ±àÒëÍêµÄÎļþ£¬ËûÃǵÄ˳ÐòÓÐÊÇʲô¡£
###################
1.Ê×ÏȾö¶¨±àÒëÄÇЩÎļþ
##################
linuxÖÐMakefieÌåϵ£º
ÔÚlinuxÄÚºËÎ ......
1.Ê×ÏÈÊÇ»ñµÃlinuxÄÚºËÔ´Â룬ºÃÏñÊÇ·Ï»°£¬ÏÂÔØµØÖ·ÈçÏ£ºftp://ftp.kernel.org/pub/linux/kernel/v2.6/ÏÂÔØ£º
linux-2.6.16.22.tar.bz2 patch-2.6.22.6.bz2
ÉÏÃæÒ»²½ÐèҪ˵Ã÷µÄÊÇÒ»°ã¶øÑÔ£¬linuxÄں˵ĸ÷¸ö²¹¶¡ÎļþÊǸù¾Ýij¸ölinuxÄں˵İ汾ºÅÀ´×÷µÄpatch¡£
½«ÉÏÃæµÄÁ½¸öѹËõÎļþ½âѹ:
tar jxvf linux-2.6.22.tar.bz2
tar jxvf patch-2.6.22.6.bz2
cd linux-2.6.22
patch -p1 < ../patch-2.6.22.6
2.linuxÄÚºËÔ´Âë½á¹¹ºÍMakefile·ÖÎö
linuxÄÚºËÔ´ÂëµÄ½á¹¹±È½ÏÇåÎú£¬ÎҾͲ»ÂÞàÂÁË£¬Èç¹û¶ÔÓÚlinuxÔ´ÂëµÄ½á¹¹²»ÊǺÜÁ˽âµÄ»°£¬¿ÉÒԲο¼ÏÂÃæµÄÎÄÕÂ
http://www.kerneltravel.net/kernel-book/%E7%AC%AC%E4%B8%80%E7%AB%A0%E8%B5%B0%E8%BF%9Blinux/1.6.2.htm
¶ÔÓÚÒÆÖ²linuxµ½s3c2410¶øÑÔ£¬Ö÷ÒªµÄ¹¤×÷Ŀ¼ÊÇ/arch/arm/Ï¡£
ÔÚwindowsÖдó¶àÊÇIDEÀ´¸ºÔðÏîÄ¿µÄ¹ÜÀí£¬µ«ÊÇÔÚlinuxÖÐÖ÷ÒªÊÇͨ¹ýMakefileÀ´ÊµÏÖÏàÓ¦µÄ¹¦ÄÜ¡£MakefiieÖ÷ÒªÓÐÏÂÃæµÄ
Èý¸ö×÷Óãº
1.Ê×ÏȾö¶¨±àÒëÄÇЩÎļþ
2.ÔõÑù±àÒëÕâЩÎļþ
3.ÈçºÎÁ´½ÓÕâЩ±àÒëÍêµÄÎļþ£¬ËûÃǵÄ˳ÐòÓÐÊÇʲô¡£
###################
1.Ê×ÏȾö¶¨±àÒëÄÇЩÎļþ
##################
linuxÖÐMakefieÌåϵ£º
ÔÚlinuxÄÚºËÎ ......
CµÄ±ä²ÎÎÊÌâÓëprintº¯ÊýµÄʵÏÖ
ÎÒÃÇÔÚCÓïÑÔ±à³ÌÖлáÓöµ½Ò»Ð©²ÎÊý¸öÊý¿É±äµÄº¯Êý,ÀýÈçprintf() Õâ¸öº¯Êý,ËüµÄ¶¨ÒåÊÇÕâÑùµÄ: int printf( const char* format, ...);
Ëü³ýÁËÓÐÒ»¸ö²ÎÊýformat¹Ì¶¨ÒÔÍâ,ºóÃæ¸úµÄ²ÎÊýµÄ¸öÊýºÍÀàÐÍÊǿɱäµÄ,ÀýÈçÎÒÃÇ¿ÉÒÔÓÐÒÔϲ»Í¬µÄµ÷Ó÷½·¨:
printf("%d",i);
printf("%s",s);
printf("the number is %d ,string is:%s", i, s);
¾¿¾¹ÈçºÎд¿É±ä²ÎÊýµÄCº¯ÊýÒÔ¼°ÕâЩ¿É±ä²ÎÊýµÄº¯Êý±àÒëÆ÷ÊÇÈçºÎʵ ÏÖµÄÄØ?±¾ÎľÍÕâ¸öÎÊÌâ½øÐÐһЩ̽ÌÖ,Ï£ÍûÄܶԴó¼ÒÓÐЩ°ïÖú.»á
C++µÄÍøÓÑÖªµÀÕâЩÎÊÌâÔÚC++Àï²»´æÔÚ,ÒòΪC++¾ßÓжà̬ÐÔ.µ«C++ÊÇCµÄÒ»¸ö ³¬¼¯,ÒÔϵļ¼ÊõÒ²¿ÉÒÔÓÃÓÚC++µÄ³ÌÐòÖÐ.ÏÞÓÚ±¾ÈË
µÄˮƽ,ÎÄÖÐÈç¹ûÓÐ ²»µ±Ö®´¦,Çë´ó¼ÒÖ¸Õý.
(Ò»)дһ¸ö¼òµ¥µÄ¿É±ä²ÎÊýµÄCº¯Êý
ÏÂÃæÎÒÃÇÀ´Ì½ÌÖÈçºÎдһ¸ö¼òµ¥µÄ¿É±ä²ÎÊýµÄCº¯Êý.д¿É±ä²ÎÊýµÄCº¯ÊýÒªÔÚ³ÌÐòÖÐÓõ½ÒÔÏÂÕâЩºê:
void va_start( va_list arg_ptr, prev_param );
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
vaÔÚÕâÀïÊÇvariable-argument(¿É±ä²ÎÊý)µÄÒâ˼.
Õâ ......