화면 픽셀의 RGB 값 (0-255)을 사용하는 C 프로그램을 작성했습니다. 그것의 위치 (x, y)를 안다. 그것은 리눅스에서 작동하지만 Visual Studio (Windows)에서 컴파일하려고하면 라이브러리 X11/Xlib.h, X11/Xutil.h, unistd.h가 존재하지 않기 때문에 충돌이 발생합니다.라이브러리 Windows 용 "X11/Xlib.h", "X11/Xutil.h", "unistd.h"
이#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
void getimage(XColor c, Display* d, int* rgb, int x, int y) {
XImage* image;
image = XGetImage(d, RootWindow(d, DefaultScreen(d)),
x, y, 1, 1, AllPlanes, XYPixmap);
c.pixel = XGetPixel(image, 0, 0);
XFree(image);
XQueryColor(d, DefaultColormap(d, DefaultScreen(d)), &c);
rgb[0] = c.red/256;
rgb[1] = c.green/256;
rgb[2] = c.blue/256;
}
int main() {
int rgb[3], x, y;
XColor c;
Display* d = XOpenDisplay((char*)NULL);
getimage(c, d, rgb, x, y);
}
는 어떻게 Windows에서 실행하려면이를 구현할 수 있습니다
이
코드인가?
이들은 라이브러리가 아니라 헤더입니다. 헤더는 사용 가능한 컴파일러에게 컴파일러에게 알려주는 텍스트 소스 파일입니다. 라이브러리 자체를 구현하지 않으면 쓸모가 없습니다. 이러한 특정 헤더와 라이브러리는 유닉스와 유사한 시스템에 주로 사용됩니다. Cygwin과 같은 Windows 용 Unix 에뮬레이션 레이어가 있습니다. 또는 Windows에서 제공하는 헤더 및 라이브러리를 사용하는 것과 동일한 기능을 가진 코드를 작성할 수 있습니다. 결과는 매우 다를 것입니다. 차이점을 추상화하는 크로스 플랫폼 라이브러리도 있습니다. wxWidgets가 하나의 예입니다. –
이것은 컴파일러 오류가 아니라 충돌입니다. – IInspectable
컴파일러 **가 누락 된 헤더에 대해 ** 충돌하는 경우 디버거에서 실행하고 모든 세부 사항이 포함 된 버그 보고서를 제출해야합니다. – Olaf