함수를 호출하여 현재 운영 체제에 맞는 올바른 API를 호출 할 수있는 API를 만들어야합니다.OS C++ 특정 API 만들기
MAIN.CPP :
#include "api.h"
int main() {
helloWorld();
return 0;
}
api.h :
void helloWorld();
api.cpp :
void helloWorld() {
#ifdef __gnu_linux__
printf("Hello World of Linux");
#endif
#ifdef WIN32
printf("Hello World of Windows");
#endif
}
그러나 아무튼
그래서 나는 그와 함께 갔다 나를 만족시키지 마라. 리눅스에서 프로세스의 모든 하위 항목을 가져 오는 기능과 같이 많은 기능을 사용할 때 코드를 유지 관리 할 수있는 공간이 부족합니다.기본 OS에 따라 다른 헤더를 포함하려고했지만이 방법은 잘 작동하지 않으며 두 개의 헤더 (Windows 용, Linux 용) 및 C++ 파일 하나만 가질 수 없습니다.
그래서 Linux와 Windows 용 코드를 어떻게 구분할 수 있는지 알기 때문에 #ifdef
조건을 갖는 하나의 헤더 파일로 두 개의 파일 (하나는 Linux 전용이고 하나는 Windows 전용)로 끝납니다.
MAIN.CPP 및 api.h 어떤 수정을 겪지 않는다 : 나는 그것을 다음과 같은 방법을했다
Windows * 및 * Linux에서 동일한 바이너리가 실행될 것으로 기대합니까? –
.cpp 파일을 다른 디렉토리에 놓고 각 시스템에 적절한 파일을 사용하여 빌드하십시오. 어쨌든 빌드 매개 변수가 다를 수 있습니다. –
@Roger : 예, 둘 다 작동하도록 만들어야합니다. – Xaltar