Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Lỗi khi khai báo #include <unistd.h> đầu chương trình.

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    20

    Mặc định Lỗi khi khai báo #include <unistd.h> đầu chương trình.

    Mình dùng Visual studio 2010 chạy thử chương trình có sử dụng khai báo #include <unistd.h> ở đầu chương trình thì lại báo lỗi <<fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory>>, có vẻ đây là lỗi không tồn tại tập tin và thư mục nhưng mà mình không biết cách khắc phục như thế nào. Các bạn giúp mình nha.

  2. #2
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    thư viện đó chỉ có trên linux

    đây là giải pháp thay thế
    http://stackoverflow.com/questions/3...ndows-visual-c

  3. #3
    Ngày gia nhập
    11 2010
    Bài viết
    589

    unistd.h là header chuẩn của các hệ thống tương thích POSIX; trên Windows muốn dùng unistd.h thì phải cài cygwin và biên dịch bằng gcc/g++. Nói chung là không dùng MS VC trong trường hợp này được.

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    20

    Bạn hướng dẫn cụ thể cách cài đặt và sử dụng chương trình cygwin được không? Làm sao để debug được file.cpp mà không báo lỗi nữa.

  5. #5
    Ngày gia nhập
    05 2011
    Bài viết
    82

    Đọc kĩ hướng dẫn của bạn quangnh89 ở http://stackoverflow.com/questions/3...ndows-visual-c
    thì gồm các bước sau
    Download: getopt.c,getopt.h tại đây
    Tạo file unistd.h có nội dung sau.

    Code:
    #ifndef _UNISTD_H
    #define _UNISTD_H    1
    
    /* This file intended to serve as a drop-in replacement for 
     *  unistd.h on Windows
     *  Please add functionality as neeeded 
     */
    
    #include <stdlib.h>
    #include <io.h>
    #include <getopt.h> /* getopt from: http://www.pwilson.net/sample.html. */
    
    #define srandom srand
    #define random rand
    
    const W_OK = 2;
    const R_OK = 4;
    
    #define access _access
    #define ftruncate _chsize
    
    #define ssize_t int
    
    #define STDIN_FILENO 0
    #define STDOUT_FILENO 1
    #define STDERR_FILENO 2
    /* should be in some equivalent to <sys/types.h> */
    typedef __int8            int8_t;
    typedef __int16           int16_t; 
    typedef __int32           int32_t;
    typedef __int64           int64_t;
    typedef unsigned __int8   uint8_t;
    typedef unsigned __int16  uint16_t;
    typedef unsigned __int32  uint32_t;
    typedef unsigned __int64  uint64_t;
    
    #endif /* unistd.h  */

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    20

    Mặc định Lỗi khi khai báo #include <unistd.h> đầu chương trình.

    Các bạn xem giúp mình chương trình giao tiếp giữa hai tiến trình trong file tieuluanhdh.zip nha, mình dùng visual studio 2010 biên dịch thì báo lỗi không tìm thấy unistd.h, sau mình mới biết là do chưa chạy file header unistd.h, nhưng khi đã chạy file này rồi thì trình biên dịch lại báo lỗi là <Cannot open include file: 'sys/cdefs.h': No such file or directory>.Mình không biết phải xứ lý lỗi này như thế nào nữa. Các bạn giúp mình nha.
    Attached Files Attached Files

  7. #7
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    C Code:
    1. #include <stdio.h>//Thu vien xuat nhap chuan//
    2. #include <unistd.h>//Khai bao su dung Pipe va mot so ham cua Linux//
    3. #include <stdlib.h>//Cac ham chuan cua Linux//
    4. #include <sys/types.h>//
    5. #include <math.h>//Thu vien toan hoc//
    6. #include <string.h>//Khai bao su dung chuoi//


    Lời khuyên của mình : bạn lấy code này đem build trên các hệ điều hành chạy nhân linux, ví dụ như ubuntu.
    Không thể dùng nó để chạy trên windows được

  8. #8
    Ngày gia nhập
    11 2012
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi tungt84 Xem bài viết
    Đọc kĩ hướng dẫn của bạn quangnh89 ở http://stackoverflow.com/questions/3...ndows-visual-c
    thì gồm các bước sau
    Download: getopt.c,getopt.h tại đây
    Tạo file unistd.h có nội dung sau.

    Code:
    #ifndef _UNISTD_H
    #define _UNISTD_H    1
    
    /* This file intended to serve as a drop-in replacement for 
     *  unistd.h on Windows
     *  Please add functionality as neeeded 
     */
    
    #include <stdlib.h>
    #include <io.h>
    #include <getopt.h> /* getopt from: http://www.pwilson.net/sample.html. */
    
    #define srandom srand
    #define random rand
    
    const W_OK = 2;
    const R_OK = 4;
    
    #define access _access
    #define ftruncate _chsize
    
    #define ssize_t int
    
    #define STDIN_FILENO 0
    #define STDOUT_FILENO 1
    #define STDERR_FILENO 2
    /* should be in some equivalent to <sys/types.h> */
    typedef __int8            int8_t;
    typedef __int16           int16_t; 
    typedef __int32           int32_t;
    typedef __int64           int64_t;
    typedef unsigned __int8   uint8_t;
    typedef unsigned __int16  uint16_t;
    typedef unsigned __int32  uint32_t;
    typedef unsigned __int64  uint64_t;
    
    #endif /* unistd.h  */
    bác Tùng ơi cho em xin cái file getopt.h với ạ

Các đề tài tương tự

  1. Lỗi: #include <gl\glaux.h> Can not open include file sửa như thế nào?
    Gửi bởi mshadow trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 29-09-2012, 05:32 PM
  2. Lập trình C++ Khai báo include alloc.h rùi sao lại ko chạy đc hàm malloc T_T
    Gửi bởi hungphong10tin trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 12-08-2011, 08:09 PM
  3. Cách khai báo #include trong lập trình C
    Gửi bởi nguyendangdung trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 21-10-2010, 10:34 AM
  4. Header unistd.h values.h
    Gửi bởi MartSoft trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 15-10-2009, 10:53 PM
  5. #include"" và #include<> khác nhau như thế nào?
    Gửi bởi olala trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 17-01-2008, 11:11 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn