2017-06-10 31 views
7

Visual Studio đã thêm rất nhiều tính năng mới cho C++ trong năm qua.Cách thêm trình biên dịch Linux vào dự án Cmake trong Visual Studio

CMake Với hỗ trợ CMake, tôi có thể thực hiện "Mở thư mục" và chọn thư mục có tệp CMakeLists.txt trong đó. Visual Studio làm rất nhiều công việc tốt đẹp trong việc khám phá và xây dựng nó tự động.

Soạn thảo Linux Visual studio giờ đây hỗ trợ biên dịch từ xa trên Linux qua SSH. Một số hướng dẫn cho thấy cách người dùng có thể tạo một "Ứng dụng giao diện điều khiển Linux" mới trong Visual Studio và nó sẽ tự động yêu cầu thiết lập kết nối SSH để sử dụng để xây dựng nó. Tôi không thấy bất kỳ hướng dẫn nào về cách thực hiện điều này trên một dự án hiện có thuộc bất kỳ loại nào.

Riêng với dự án CMake, bạn có thể mở thư mục CMake trong Visual Studio 2017 và xây dựng nó trên máy Linux từ xa không? IfSoHow?

+0

Xin lưu ý, tôi đã xem bài đăng tương tự này và câu trả lời là không thỏa đáng: https://stackoverflow.com/questions/42762424/cmake-generator-for-visual-studio-linux-cross-platform – solvingJ

Trả lời

9

Không có build-in hỗ trợ cho một VS "Linux Bảng điều khiển Ứng dụng "trong CMake chưa (đối với phiên bản CMake 3.9).

Chỉnh sửa: Visual Studio 2017 15.4 hiện có kèm theo một cái gì đó tương tự mà không cần tạo các tệp .vcxproj thực tế. Xem Visual C++ for Linux Development with CMake

Với phiên bản CMake tiêu chuẩn bên cạnh những khả năng mô tả here sử dụng .vcxproj file đang tồn tại như một mẫu, bạn chỉ có thể lừa CMake vào việc tạo ra những loại dự án:

cmake_minimum_required(VERSION 3.7) 

project(HelloLinux) 

file(WRITE main.cpp [=[ 
#include <iostream> 

int main() 
{ 
    std::cout << "Hello from Linux Console!" << std::endl; 
} 
]=]) 

add_executable(HelloLinux "main.cpp") 

set_target_properties(
    HelloLinux 
    PROPERTIES 
     VS_GLOBAL_KEYWORD "Linux" 
     VS_GLOBAL_ApplicationType "Linux" 
     VS_GLOBAL_ApplicationTypeRevision "1.0" 
     VS_GLOBAL_TargetLinuxPlatform "Generic" 
     VS_GLOBAL_LinuxProjectType "{D51BCBC9-82E9-4017-911E-C93873C4EA2B}" 
) 

này thực sự hoạt động và tạo ra một Linux .vcxproj dự án được chấp nhận bởi VS. Nhưng kể từ khi chúng tôi sidestepped CMake ở đây, không có tùy chọn trình biên dịch/liên kết nào khác mà bạn xác định trong kịch bản lệnh CMake của bạn sẽ được gán.

Vì vậy, đề nghị của tôi là để raise a feature request cho chính CMake hỗ trợ trực tiếp điều này (ví dụ: thông qua tùy chọn bộ công cụ nền tảng Remote_GCC_1_0).

0

Dường như nó không hoạt động như bạn mong đợi. Có vẻ như bạn cần tạo vcproject linux riêng biệt cho codebase cmake hiện có của bạn. Không có gì giống như mục tiêu linux trong các tùy chọn VS. Để biết thêm thông tin, hãy xem các nhận xét trong số msdn blog này.

Bạn có thể có thể tạo ra 'dự án Linux mới' và sao chép nguồn của bạn hoặc thử (và thích ứng) sử dụng cho các nguồn hiện các kịch bản không chính thức: https://github.com/robotdad/vclinux

Các vấn đề liên quan