2017-06-10 7 views
7

में सीमेक प्रोजेक्ट में लिनक्स संकलन कैसे जोड़ें विजुअल स्टूडियो ने पिछले वर्ष सी ++ के लिए कई नई सुविधाएं जोड़ दी हैं।विजुअल स्टूडियो

CMake CMake समर्थन के साथ , मैं "ओपन फ़ोल्डर" करते हैं और उस में एक CMakeLists.txt फ़ाइल के साथ एक फ़ोल्डर का चयन कर सकते हैं। विजुअल स्टूडियो स्वचालित रूप से इसे खोजने और बनाने में बहुत अच्छा काम करता है।

लिनक्स संकलन विजुअल स्टूडियो अब एसएसएच पर लिनक्स पर रिमोट संकलन का समर्थन करता है। कई ट्यूटोरियल दिखाते हैं कि उपयोगकर्ता विजुअल स्टूडियो में एक नया "लिनक्स कंसोल एप्लिकेशन" कैसे बना सकते हैं, और यह स्वचालित रूप से इसे बनाने के लिए उपयोग किए जाने वाले एसएसएच कनेक्शन को सेट करने के लिए कहेंगे। मुझे किसी भी प्रकार की मौजूदा परियोजना पर ऐसा करने के लिए कोई निर्देश नहीं दिख रहा है।

विशेष रूप से एक सीएमके परियोजना के साथ, क्या विजुअल स्टूडियो 2017 में एक सीएमके फ़ोल्डर खोलना संभव है और इसे रिमोट लिनक्स मशीन पर बनाया गया है? यदि हां, तो कैसे?

+0

कृपया ध्यान दें, मैंने इस समान पोस्ट को देखा है, और उत्तर संतोषजनक नहीं है: https://stackoverflow.com/questions/42762424/cmake-generator-for-visual-studio-linux-cross-platform – solvingJ

उत्तर

9

कोई निर्माण में एक वी.एस. के लिए समर्थन "लिनक्स कंसोल नहीं है आवेदन "अभी तक सीएमके में (सीएमके संस्करण 3.9 के लिए)।

संपादित करें: विजुअल स्टूडियो 2017 15.4 अब वास्तविक .vcxproj फ़ाइलों को उत्पन्न किए बिना कुछ समान है। Visual C++ for Linux Development with CMake

देखें संभावनाओं के अलावा एक मानक CMake संस्करण के साथ एक टेम्पलेट के रूप मौजूदा .vcxproj फ़ाइलों का उपयोग कर वर्णित here, आप केवल उन परियोजना प्रकार पैदा करने में CMake चाल कर सकते हैं:

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}" 
) 

यह वास्तव में काम करता है और एक लिनक्स .vcxproj का उत्पादन परियोजना जो वीएस द्वारा स्वीकार की जाती है। लेकिन चूंकि हमने यहां सीएमके को हटा दिया है, इसलिए आपके सीएमके स्क्रिप्ट में परिभाषित अन्य कंपाइलर/लिंकर विकल्पों में से कोई भी असाइन नहीं किया जाएगा।

तो मेरी सिफारिश raise a feature request सीएमके के लिए सीधे इसका समर्थन करने के लिए है (उदाहरण के लिए प्लेटफ़ॉर्म टूलसेट विकल्प Remote_GCC_1_0 के माध्यम से)।

0

ऐसा लगता है कि आप अभी तक काम नहीं कर रहे हैं। ऐसा लगता है कि आपको अपने मौजूदा सेमेक कोडबेस के लिए अलग लिनक्स vcproject बनाने की आवश्यकता है। वीएस विकल्पों में लिनक्स लक्ष्य की तरह कुछ भी नहीं है। अधिक जानकारी के लिए इस msdn blog में टिप्पणियां देखें।

आप या तो बना सकते हैं 'नए linux परियोजना' और अपने स्रोतों की प्रतिलिपि बनाने या कोशिश (और अनुकूलन) मौजूदा स्रोतों इन अनौपचारिक लिपियों के लिए उपयोग कर: https://github.com/robotdad/vclinux

संबंधित मुद्दे