Trang chủ > tags> MinGW
MinGW
Chỉ thị
- 4 Tháng Tám 2010 12:00 AM
- Vật liệu
Lưu ý để cô lập các phần phụ thuộc vào nền tảng chỉ thị tiền xử lý khi viết mã nền tảng.
- Trình biên dịch
- GCC
- # Ifdef __ GNUC__
- Hoặc hơn # nếu __ GNUC__> = 3 / / GCC3.0
- # Ifdef __ GNUC__
- Borland C + +
- # Ifdef __ BORLANDC__
- intel Compiler
- # Ifdef __ INTEL_COMPILER
- Microsoft trình biên dịch
- # Ifdef _MSC_VER
- # VC sau này nếu _MSC_VER> = 600 / / C Compiler 6.0 + + bao gồm cả
- # VC sau này nếu _MSC_VER> = 700 / / C / C + + Compiler 7.0 + + bao gồm cả
- # Sau đó nếu _MSC_VER> = 800 / / VC + 1,0
- # Sau đó nếu _MSC_VER> = 900 / / VC + 2,0
- # Sau đó nếu _MSC_VER> = 1000 / / VC + 4,0
- # Sau đó nếu _MSC_VER> = 1010 / / VC + 4,1
- # Sau đó nếu _MSC_VER> = 1020 / / VC + 4,2
- # Sau đó nếu _MSC_VER> = 1100 / / VC + 5,0
- # Sau đó nếu _MSC_VER> = 1200 / / VC + 6,0
- # Nếu _MSC_VER> = 1300 / / VC2002 sau (VC7.0)
- # Nếu _MSC_VER> = 1310 / / VC2003 sau (VC7.1)
- # Nếu _MSC_VER> = 1400 / / VC2005 sau (VC8.0)
- # Nếu _MSC_VER> = 1500 / / VC2008 sau (VC9.0)
- # Nếu _MSC_VER> = 1600 / / VC2010 sau (VC10.0)
- # Ifdef _MSC_VER
- GCC
- Hệ thống UNIX
- UNIX
- # Ifdef __ unix
- # Ifdef __ unix__
- Linux
- # Ifdef __ linux
- # Ifdef __ linux__
- FreeBSD
- # Ifdef __ FreeBSD__
- NetBSD
- # Ifdef __ NetBSD__
- Cygwin
- # Ifdef __ CYGWIN__
- # Cygwin phiên bản ifdef __ CYGWIN32__ / / 32bit
- MinGW (MnO-Cygwin)
- # Ifdef __ MINGW32__
- UNIX
- Hệ thống Windows
- CUI
- # Ifdef _CONSOLE
- GUI
- # Ifdef _WINDOWS
- Windows 32bit
- # Ifdef Win32
- # Ifdef _WIN32
- 64bit Windows
- # Ifdef _WIN64
- Phiên bản Windows
- # Ifdef Winver
- Kể từ khi # if (Winver> = 0x030a) / / Windows 3.1
- # Kể từ 95 / NT4.0 (Winver> = 0 × 0400) / / Windows nếu
- Kể từ khi # if (Winver> = 0 × 0410) / / Windows 98
- Kể từ khi # if (Winver> = 0 × 0500) / / Windows Me / 2000
- Kể từ khi # if (Winver> = 0 × 0501) / / Windows XP / Server 2003
- # Kể từ năm 2003 SP1 (Winver> = 0 × 0502) / / Windows XP SP2 / Server nếu
- Kể từ khi # if (Winver> = 0 × 0600) / / Windows Vista / Server 2008
- Kể từ khi # if (Winver> = 0 × 0601) / / Windows 7
- # Ifdef _WIN32_WINDOWS / / Windows9x
- # Nếu sau này (_WIN32_WINDOWS> = 0 × 0400) / / Windows 95
- Nếu sau đó (_WIN32_WINDOWS> = 0 × 0410) / / Windows 98
- Nếu sau đó (_WIN32_WINDOWS> = 0 × 0500) / / Windows Me
- # Ifdef _WIN32_WINNT / / WindowsNTx
- / / Kể từ khi Windows 2000 (0 × 0500)
# Nếu (_WIN32_WINNT> = _WIN32_WINNT_WIN2K) - / / Kể từ khi Windows 2003 XP / Server (0 × 0501)
# Nếu (_WIN32_WINNT> = _WIN32_WINNT_WINXP) - / / Từ 2003 SP1 Windows XP SP2 / Server (0 × 0502)
# Nếu (_WIN32_WINNT> = _WIN32_WINNT_WS03) - / / Từ Windows Vista (0 × 0600)
# Nếu (_WIN32_WINNT> = _WIN32_WINNT_VISTA) - / / Từ Windows Server 2008 (0 × 0600)
# Nếu (_WIN32_WINNT> = _WIN32_WINNT_WS08) - / / Từ Windows 7 (0 × 0601)
# Nếu (_WIN32_WINNT> = _WIN32_WINNT_WIN7)
- / / Kể từ khi Windows 2000 (0 × 0500)
- # Ifdef _WIN32_WCE / / WindowsCE
- # Nếu (_WIN32_WCE> = 0 × 0420) / / Windows Mobile 2003 (PPC2003)
- # Nếu (_WIN32_WCE> = 0 × 0421) / / Windows Mobile 2003 SE (PPC2003SE)
- # Nếu (_WIN32_WCE> = 0 × 0501) / / Windows Mobile 5.0
- # Nếu (_WIN32_WCE> = 0 × 0502) / / Windows Mobile 6 Professional / Classic
- # Nếu (WINCEOSVER> = 0 × 0300) / / WindowsCE3.0 sau (PPC2002)
- # Nếu (WINCEOSVER> = 0 × 0420) / / WindowsCE4.2 sau (PPC2003)
- # Nếu (WINCEOSVER> = 0 × 0500) / / WindowsCE5.0 sau (WM5.0)
- # Ifdef Winver
- Internet Explorer phiên bản
- # Ifdef _WIN32_IE
- # Nếu (_WIN32_IE> = 0 × 0200) / / Windows 95/NT 4.0 (4,00 Comctl32.dll, Shell32.dll 4,00)
- # Nếu (_WIN32_IE> = 0 × 0300) / / Internet Explorer 3.0, 3,01, 3,02
- # Nếu (_WIN32_IE> = 0 × 0400) / / Internet Explorer 4.0
- # Nếu (_WIN32_IE> = 0 × 0401) / / Internet Explorer 4,01
- # Nếu (_WIN32_IE> = 0 × 0500) / / Internet Explorer 5.0, 5.0a, 5.0b
- # Nếu (_WIN32_IE> = 0 × 0501) / / Internet Explorer 5.01
- # Nếu (_WIN32_IE> = 0 × 0550) / / Internet Explorer 5.5
- # Nếu (_WIN32_IE> = 0 × 0600) / / Internet Explorer 6.0
- # Nếu (_WIN32_IE> = 0 × 0601) / / Internet Explorer 6.0 SP1
- # Nếu (_WIN32_IE> = 0 × 0603) / / Internet Explorer 6.0 SP2
- # Nếu (_WIN32_IE> = 0 × 0700) / / Internet Explorer 7.0
- # Nếu (_WIN32_IE> = 0 × 0800) / / Internet Explorer 8.0
- # Ifdef _WIN32_IE
- CUI
Lưu ý <br /> tiền xử lý, điều trị như là định danh không xác định 0, # nếu __ GNUC__> = 3 hoặc nhiều hơn, nhưng có thể được sử dụng như GCC3,
Nếu bạn cố gắng để xác định # __ GNUC__ <3 cho dù hệ thống GCC2, bao gồm những không GCC.
Tài liệu tham khảo
Được các phiên bản của Windows
- Tháng Bảy 29, 2010 12:00 AM
- Vật liệu
Nhưng tôi không nghĩ rằng tôi có thể sử dụng, dự kiến lưu ý.
Nếu trình biên dịch có thể được biên dịch mà không có vấn đề và tôi nghĩ rằng hệ thống Windows.
Dự kiến, biên dịch và xác nhận hoạt động được thực hiện trong MinGW.
#include <windows.h> #include <stdio.h> int main(void) { unsigned int GV = GetVersion(); printf("GetVersion API(GV) = %08X\n\n", GV); printf("_winver = %08X\n", _winver); printf("_winmajor = %08X\n", _winmajor); printf("_winminor = %08X\n", _winminor); printf("_osver = %08X\n\n", _osver); printf("(( GV << 8 ) | (( GV >> 8 ) & 0XFF)) & 0XFFFF = %08X (= _winver)\n", (( GV << 8 ) | (( GV >> 8 ) & 0XFF)) & 0XFFFF ); printf("GV & 0XFF = %08X (= _winmajor)\n", GV & 0XFF ); printf("( GV >> 8 ) & 0XFF = %08X (= _winminor)\n", (( GV >> 8 ) & 0XFF)); printf("GV >> 16 = %08X (= _osver)\n\n\n", (GV >> 16) ); // Windows version(_winmajor, _winminor, _osver) printf("This system is ["); if ( _osver < 0X8000 ) { // NT Group (_osver LowWORD MSB = 0) switch (_winmajor) { case 3: case 4: printf ("Windows NT %u.%u Build %u", _winmajor, _winminor, _osver); break; case 5: switch (_winminor) { case 0: printf ("Windows 2000 Build %u", _osver); break; case 1: printf ("Windows XP Build %u", _osver); break; case 2: printf ("Windows Server 2003 family Build %u", _osver); break; default: printf ("NT Group Windows Build %u", _osver); } break; case 6: switch (_winminor) { case 0: printf ("Windows Vista or Windows Server 2008 Build %u", _osver); break; case 1: printf ("Windows 7 Build %u", _osver); break; default: printf ("NT Group Windows Build %u", _osver); } break; default: printf ("NTGroup Windows Build %u", _osver); } } else { switch (_winmajor ) { case 0: //Win32s Group case 1: case 2: case 3: printf ("Win32s Build %u", _osver & 0X7FFF); break; case 4: // 9X Group (_osver is invalid.) switch (_winminor) { case 0: printf ("Windows 95 Build ----"); break; case 10: printf ("Windows 98 Build ----"); break; case 90: printf ("Windows Me Build ----"); break; default: // To make sure printf ("Newer than Windows Me"); } break; default: // To make sure printf ("Newer than Windows Me"); } } printf("]"); return 0; } Phần 2 được biên soạn với MinGW Jpegopitm
- 23 Tháng 7, 2010 12:00 AM
- Phần mềm
Tôi có thể đến với nhau trong một nơi, nơi nó được sửa chữa sau một sự thay đổi changes'm của Jpegoptim.c.
@@ -53,6 +53,39 @@ #define ICC_IDENT_STRING "ICC_PROFILE\0" #define ICC_IDENT_STRING_SIZE 12 +#ifdef WIN32 +#define uid_t int +#define gid_t int +#define ROOT_UID 0 +#define ROOT_GID 0 +#define realpath(N,R) _fullpath((R),(N),_MAX_PATH) +uid_t getuid(void) +{ + return ROOT_UID; +} +uid_t geteuid(void) +{ + return ROOT_UID; +} +gid_t getgid(void) +{ + return ROOT_GID; +} +gid_t getegid(void) +{ + return ROOT_GID; +} +int setuid(uid_t uid) +{ + return (uid == ROOT_UID ? 0 : -1); +} +int setgid(gid_t gid) +{ + return (gid == ROOT_GID ? 0 : -1); +} + +#endif + void fatal(const char *msg); struct my_error_mgr { Biên dịch với MinGW các Jpegopitm
- 22 Tháng 7, 2010 12:00 AM
- Phần mềm
Tôi tình cờ một lưu ý nhỏ để biên dịch Jpegoptim.
- Giải nén các vị trí jpegoptim-1.2.3 theo msys / src /
- Bắt đầu msys, nhập vào lệnh sau:
$ cd /src/jpegoptim-1.2.3/ $ autoconf $ configure - cấu hình không vượt qua, các lỗi sau đây đi ra
configure: error: cannot find install-sh, install.sh, or shtool in aux "."/aux - được sửa đổi như sau configure.in
@@ -3,7 +3,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(jpegoptim.c) AC_CONFIG_HEADER(config.h) -AC_CONFIG_AUX_DIR(aux) +AC_CONFIG_AUX_DIR(sub) AC_CANONICAL_HOST - Tạo một thư mục phụ, mang lại từ vị trí thích hợp như cài đặt-sh (Trong ví dụ từ Jpeglib)
$ mkdir sub $ cp ../jpeg-6bx/install-sh ../jpeg-6bx/config.sub ../jpeg-6bx/config.guess ./sub - Một lần nữa, để tạo ra một tập tin cấu hình, chạy cấu hình
$ autoconf $ configure - Nếu bạn cấu hình thông qua, bạn chạy làm cho. Sau đó nhận được các lỗi sau đây:
jpegoptim.c:354: undefined reference to 'realpath' jpegoptim.c:354: undefined reference to 'realpath' - được sửa đổi như sau jpegoptim.c
@@ -351,7 +351,11 @@ } break; case 'd': - if (realpath(optarg,dest_path)==NULL || !is_directory(dest_path)) { +#ifdef WIN32 + if (_fullpath(dest_path,optarg,MAXPATHLEN)==NULL || !is_directory(dest_path)) { +#else + if (realpath(optarg,dest_path)==NULL || !is_directory(dest_path)) { +#endif fatal("invalid argument for option -d, --dest"); } if (verbose_mode) @@ -441,8 +445,13 @@ fatal("splitdir() failed!"); strncpy(newname,argv[i],sizeof(newname)); } - snprintf(tmpfilename,sizeof(tmpfilename), +#ifdef WIN32 + snprintf(tmpfilename,sizeof(tmpfilename), + "%sjpegoptim-%d.tmp", tmpdir, (int)getpid()); +#else + snprintf(tmpfilename,sizeof(tmpfilename), "%sjpegoptim-%d-%d.tmp", tmpdir, (int)getuid(), (int)getpid()); +#endif } retry_point: - Một lần nữa, biên soạn được thông qua trong thực hiện.
nó, mặc dù nó được thư mục có tên aux kịch bản phụ trợ như install-sh nó là một di tích của hệ thống mỗi BSD,
Bạn không thể tạo ra một thư mục có tên aux thư mục đặc biệt trong những tàn tích của DOS trong Windows.
Vì vậy, chúng tôi lưu trữ một số loại kịch bản phụ trợ để thay đổi các tài liệu tham khảo "phụ", bạn có thể tạo ra một "phụ" thư mục mới, được bao gồm trong phần mềm hệ thống GNU.
Ngoài ra, getuid realpath và đó là lỗi tại thời gian biên dịch là một chức năng của hệ thống POSIX
Đã được xóa hoặc thay thế với một hoạt động tương tự hoặc bởi vì Windows không tồn tại.
Tôi đã viết lại nó đẹp hơn trong ví dụ của chúng ta tốt hơn, nhưng thay thế các realpath để vượt qua _fullpath biên soạn
Trang chủ > tags> MinGW
- Tìm kiếm
- Nuôi
- Dịch










