1

Visual Studio의 VC_Linux for Raspberry Pi3을 사용하여 코드를 컴파일하고 디버깅 할 수 있기를 바랍니다.VC_Linux - Visual Studio C++ Raspberry Pi - Library 문제에 대한 Linux 크로스 플랫폼 빌드

Pi에 UDP 클라이언트 및 서버를 코딩하려고합니다.

간단한 VCLinux는 단순한 hello world 프로젝트에서 훌륭하게 작동했습니다 ...하지만 Pi 폴더의 usr/include에있는 Pi에서 소스 파일을 참조하려고하면 Visual Studio에서 불평하기 시작합니다. 소스 파일이 없거나 파일을 찾을 수 없습니다.

예를 들어, UDP 클라이언트/서버를 구축하려면 socket.h 파일이 필요합니다. 파이 이것은 내가 전체 USR 복사 \ 내 Windows 시스템에 파이에서 파일을 포함

usr\include\asm-generic\socket.h 

에서 찾을 수 있습니다 (이름을 변경 PI_Source 그래서 폴더가 기본 "C 중 하나와 동일하지 않습니다 다음과 같습니다 : \ 프로그램 파일 (x86) \ Microsoft Visual Studio 14.0 \ VC \ Linux \ include "). 복사 된 PI_Source 폴더를 프로젝트 등록 정보 내의 내 포함 디렉토리 및 소스 디렉토리에 추가하려고했습니다. 이 socket.h 및 sockios.h을 찾을 수 없다는 불평 비주얼 스튜디오와 함께 ... 오류가 다음 파일 결과를 구축하려고

VC++ Directories

.

#include <cstdio> 
#include <asm-generic\socket.h> 
#include <asm-generic\sockios.h> 

int main() 
{ 
    printf("hello from Pi_Testing!\n"); 
    return 0; 
} 

Build Error

어떻게 성공적으로 제대로 링크 된 소스 파일과 디렉토리로 구축 비주얼 스튜디오를받을 수 있나요?

내가 Pi Include 폴더를 잘못된 경로에 넣고 있습니까?
* C : \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ Linux \ include \ usr \ include *
다른 권장 사항이나 제안 사항이 있습니까?

답변

1

헤더 파일에 잘못된 경로 구분 기호를 사용하고 있습니다. Linux에서는 /이고 Windows에서는 \입니다. 다행스럽게도 Visual C++은 두 형식을 모두 허용하므로 교차 플랫폼 코드는 /을 사용해야합니다.

보다 일반적으로. 일반적으로 VC++ 디렉토리가 아닌 프로젝트 설정의 C/C++ 일반 페이지에 포함 경로를 지정합니다.

  1. 원격 리눅스 시스템의 경로, 예를 들면 :

    두 가지 용도로는 C/C++ 일반 페이지의 Additional Include Directories에서 지정한 경로를 포함 /usr/include/asm-generic 어디 Windows 호스트에 경로가 어디 인텔리의 헤더를 찾을 VS에게 컴파일

  2. 동안 헤더를 찾을하는 g++에게

    VCLinux에서

는 모두를 지정해야합니다 1.0.5 . 상대 경로를 사용하면 동일한 경로가 두 번 지정 될 수 있습니다.

/usr/include은 기본적으로 g++으로 검색되며, VCLinux는 IntelliSense의 표준 C++ 런타임에 대한 헤더 사본을 제공하므로 일반적으로 프로젝트 설정에 아무 것도 추가 할 필요가 없습니다. 그러나 원하는 헤더가 VCLinux 배포판에서 누락되어 소스가 제대로 컴파일되지만 머리글은 IntelliSense에 알려지지 않습니다. 예, Windows 시스템의 어딘가에 헤더를 넣고 어디에서나 좋은 방법으로 프로젝트 설정에서 Windows 경로를 한 번만 지정하십시오.