What is the equivalent of Solution files in Linux C++ IDE





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







-1















I am very new to C++ development in Linux as I have always used Visual Studio in Windows for development.



There is a C++ project, the project has been designed in a way that it's builds using CMakeLists.txt files. I had a tough time building the same in Windows but fortunately, I could build this in Linux.



The build output in Linux is a bunch of .so files (that I read on the web is equivalent to .dll files in Windows).



I intend to open the solution files in Linux C++ IDE (I am currently using CLion for the same), the same way it is done in Visual Studio in Windows using the solution (.sln file). I am not sure how the project file can be opened in Linux C++ IDE and how I can generate the same using Cmake in Linux. Any help in this regard would be very helpful.



What is the equivalent of VS solution file in Linux, I want to open my project files in a Linux-based C++ IDE for example CLion, and how can I generate the same in Linux using Cmake?










share|improve this question




















  • 2





    With CLion you should be able to open the top level CMakeLists.txt as the project file

    – nos
    Jan 4 at 14:40











  • IMHO, this is off topic and might get closed: you are asking for some software recommendation, are you?

    – kebs
    Jan 4 at 14:41











  • @kebs, I am not asking for any software recommendations, but the procedure to open the C++ project files in Linux IDE as I am new to Linux IDEs and how those files are generated in Linux.

    – Peter
    Jan 4 at 14:46






  • 1





    @Peter Linux has several different build systems and IDEs all with their own way of doing things. Makefiles are generally your best bet on Linux as their tooling is part of GNU. See my answer for more.

    – Cinder Biscuits
    Jan 4 at 15:03








  • 1





    @Peter As mentioned Clion lets you open the CMakeLists.txt file directly. See the bottom of jetbrains.com/clion/features/start-your-project.html . You don't need to run cmake first to generate a project file. Now - other Linux IDEs might not support that though.

    – nos
    Jan 4 at 15:37




















-1















I am very new to C++ development in Linux as I have always used Visual Studio in Windows for development.



There is a C++ project, the project has been designed in a way that it's builds using CMakeLists.txt files. I had a tough time building the same in Windows but fortunately, I could build this in Linux.



The build output in Linux is a bunch of .so files (that I read on the web is equivalent to .dll files in Windows).



I intend to open the solution files in Linux C++ IDE (I am currently using CLion for the same), the same way it is done in Visual Studio in Windows using the solution (.sln file). I am not sure how the project file can be opened in Linux C++ IDE and how I can generate the same using Cmake in Linux. Any help in this regard would be very helpful.



What is the equivalent of VS solution file in Linux, I want to open my project files in a Linux-based C++ IDE for example CLion, and how can I generate the same in Linux using Cmake?










share|improve this question




















  • 2





    With CLion you should be able to open the top level CMakeLists.txt as the project file

    – nos
    Jan 4 at 14:40











  • IMHO, this is off topic and might get closed: you are asking for some software recommendation, are you?

    – kebs
    Jan 4 at 14:41











  • @kebs, I am not asking for any software recommendations, but the procedure to open the C++ project files in Linux IDE as I am new to Linux IDEs and how those files are generated in Linux.

    – Peter
    Jan 4 at 14:46






  • 1





    @Peter Linux has several different build systems and IDEs all with their own way of doing things. Makefiles are generally your best bet on Linux as their tooling is part of GNU. See my answer for more.

    – Cinder Biscuits
    Jan 4 at 15:03








  • 1





    @Peter As mentioned Clion lets you open the CMakeLists.txt file directly. See the bottom of jetbrains.com/clion/features/start-your-project.html . You don't need to run cmake first to generate a project file. Now - other Linux IDEs might not support that though.

    – nos
    Jan 4 at 15:37
















-1












-1








-1








I am very new to C++ development in Linux as I have always used Visual Studio in Windows for development.



There is a C++ project, the project has been designed in a way that it's builds using CMakeLists.txt files. I had a tough time building the same in Windows but fortunately, I could build this in Linux.



The build output in Linux is a bunch of .so files (that I read on the web is equivalent to .dll files in Windows).



I intend to open the solution files in Linux C++ IDE (I am currently using CLion for the same), the same way it is done in Visual Studio in Windows using the solution (.sln file). I am not sure how the project file can be opened in Linux C++ IDE and how I can generate the same using Cmake in Linux. Any help in this regard would be very helpful.



What is the equivalent of VS solution file in Linux, I want to open my project files in a Linux-based C++ IDE for example CLion, and how can I generate the same in Linux using Cmake?










share|improve this question
















I am very new to C++ development in Linux as I have always used Visual Studio in Windows for development.



There is a C++ project, the project has been designed in a way that it's builds using CMakeLists.txt files. I had a tough time building the same in Windows but fortunately, I could build this in Linux.



The build output in Linux is a bunch of .so files (that I read on the web is equivalent to .dll files in Windows).



I intend to open the solution files in Linux C++ IDE (I am currently using CLion for the same), the same way it is done in Visual Studio in Windows using the solution (.sln file). I am not sure how the project file can be opened in Linux C++ IDE and how I can generate the same using Cmake in Linux. Any help in this regard would be very helpful.



What is the equivalent of VS solution file in Linux, I want to open my project files in a Linux-based C++ IDE for example CLion, and how can I generate the same in Linux using Cmake?







linux cmake






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 4 at 16:04









Cinder Biscuits

2,6121526




2,6121526










asked Jan 4 at 14:37









PeterPeter

122




122








  • 2





    With CLion you should be able to open the top level CMakeLists.txt as the project file

    – nos
    Jan 4 at 14:40











  • IMHO, this is off topic and might get closed: you are asking for some software recommendation, are you?

    – kebs
    Jan 4 at 14:41











  • @kebs, I am not asking for any software recommendations, but the procedure to open the C++ project files in Linux IDE as I am new to Linux IDEs and how those files are generated in Linux.

    – Peter
    Jan 4 at 14:46






  • 1





    @Peter Linux has several different build systems and IDEs all with their own way of doing things. Makefiles are generally your best bet on Linux as their tooling is part of GNU. See my answer for more.

    – Cinder Biscuits
    Jan 4 at 15:03








  • 1





    @Peter As mentioned Clion lets you open the CMakeLists.txt file directly. See the bottom of jetbrains.com/clion/features/start-your-project.html . You don't need to run cmake first to generate a project file. Now - other Linux IDEs might not support that though.

    – nos
    Jan 4 at 15:37
















  • 2





    With CLion you should be able to open the top level CMakeLists.txt as the project file

    – nos
    Jan 4 at 14:40











  • IMHO, this is off topic and might get closed: you are asking for some software recommendation, are you?

    – kebs
    Jan 4 at 14:41











  • @kebs, I am not asking for any software recommendations, but the procedure to open the C++ project files in Linux IDE as I am new to Linux IDEs and how those files are generated in Linux.

    – Peter
    Jan 4 at 14:46






  • 1





    @Peter Linux has several different build systems and IDEs all with their own way of doing things. Makefiles are generally your best bet on Linux as their tooling is part of GNU. See my answer for more.

    – Cinder Biscuits
    Jan 4 at 15:03








  • 1





    @Peter As mentioned Clion lets you open the CMakeLists.txt file directly. See the bottom of jetbrains.com/clion/features/start-your-project.html . You don't need to run cmake first to generate a project file. Now - other Linux IDEs might not support that though.

    – nos
    Jan 4 at 15:37










2




2





With CLion you should be able to open the top level CMakeLists.txt as the project file

– nos
Jan 4 at 14:40





With CLion you should be able to open the top level CMakeLists.txt as the project file

– nos
Jan 4 at 14:40













IMHO, this is off topic and might get closed: you are asking for some software recommendation, are you?

– kebs
Jan 4 at 14:41





IMHO, this is off topic and might get closed: you are asking for some software recommendation, are you?

– kebs
Jan 4 at 14:41













@kebs, I am not asking for any software recommendations, but the procedure to open the C++ project files in Linux IDE as I am new to Linux IDEs and how those files are generated in Linux.

– Peter
Jan 4 at 14:46





@kebs, I am not asking for any software recommendations, but the procedure to open the C++ project files in Linux IDE as I am new to Linux IDEs and how those files are generated in Linux.

– Peter
Jan 4 at 14:46




1




1





@Peter Linux has several different build systems and IDEs all with their own way of doing things. Makefiles are generally your best bet on Linux as their tooling is part of GNU. See my answer for more.

– Cinder Biscuits
Jan 4 at 15:03







@Peter Linux has several different build systems and IDEs all with their own way of doing things. Makefiles are generally your best bet on Linux as their tooling is part of GNU. See my answer for more.

– Cinder Biscuits
Jan 4 at 15:03






1




1





@Peter As mentioned Clion lets you open the CMakeLists.txt file directly. See the bottom of jetbrains.com/clion/features/start-your-project.html . You don't need to run cmake first to generate a project file. Now - other Linux IDEs might not support that though.

– nos
Jan 4 at 15:37







@Peter As mentioned Clion lets you open the CMakeLists.txt file directly. See the bottom of jetbrains.com/clion/features/start-your-project.html . You don't need to run cmake first to generate a project file. Now - other Linux IDEs might not support that though.

– nos
Jan 4 at 15:37














5 Answers
5






active

oldest

votes


















1














Solution files (.sln) and C++ project files (.vcxproj) are a Visual Studio custom format (more specifically, they are part of Microsoft's MSBuild build system). It might be possible to find (or write) an extension for another IDE that can read these files and emulate MSBuild, but if you have the CMake configuration file (CMakeLists.txt) you should be able to open that or its containing directory as a project in CLion (as was pointed out in the comments).



If you don't have that file, and the project doesn't require particularly complex build steps, then you can probably just create a new CLion project "from existing source"; it should be able to generate the CMake files for you.






share|improve this answer































    1














    Linux does not use VS solution files. They are specific to Windows and Visual Studio. You will need to use cmake -G to generate the appropriate platform-specific build files. ie. One of these, depending on which IDE you chose to use:



    Unix Makefiles               = Generates standard UNIX makefiles.
    Ninja = Generates build.ninja files.
    Watcom WMake = Generates Watcom WMake makefiles.
    CodeBlocks - Ninja = Generates CodeBlocks project files.
    CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
    CodeLite - Ninja = Generates CodeLite project files.
    CodeLite - Unix Makefiles = Generates CodeLite project files.
    Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
    Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
    KDevelop3 = Generates KDevelop 3 project files.
    KDevelop3 - Unix Makefiles = Generates KDevelop 3 project files.
    Kate - Ninja = Generates Kate project files.
    Kate - Unix Makefiles = Generates Kate project files.
    Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
    Sublime Text 2 - Unix Makefiles
    = Generates Sublime Text 2 project files.


    Since you are using CLion, I would suggest cmake -G "Unix Makefiles" which are supported by several popular Linux C++ IDEs as well as GNU/Linux tooling found universally on Linux.






    share|improve this answer

































      1














      First, approach Linux with a fresh mindset. Your question is implicitly asking for an exact equivalent of Microsoft products, and that is not reasonable and is not how Linux and other Unixes (and software development under it) work. On Linux (and other Unix systems, including MacOSX), you'll combine several tools for your job, e.g. a compiler (such as GCC or Clang), a linker and related utilities (binutils), a source code editor (you have lots of choice, I recommend emacs, but you could use vim, geany, gedit, etc... it is really a matter of taste), a debugger like gdb (and you really want to use it on the command line, since it is very powerful), a version control (I strongly recommend git), a build automation tool (like make or ninja), perhaps a documentation generator such as doxygen; maybe you'll do some ad-hoc metaprogramming with C or C++ code generators such as bison, SWIG,
      Protobuf, etc... or thru your own script (in shell, AWK, Python, some generic preprocessor like GPP or m4, etc..). The cmake utility (which I don't like) is simply a Makefile generator (and the actual build is done by make), and in many cases writing that Makefile by hand is simpler.



      In particular, you will need some time to learn how to do things the Linux way. Consider that you could need a few days or weeks of reading and learning. Don't expect to be "operational" immediately. Invest some time in learning command line tools and the Unix shell.



      If you are programming for Linux (notably in C++ or C), you'll also need to understand Linux programming (and that takes some time). Read some book like ALP or something newer. Be aware of the syscalls(2). In some cases, you could be interested by C++ frameworks such as Qt, POCO, Boost, etc... (but I believe you still need to understand the basics of Linux programming, even if you use these frameworks).



      Read the wikipage on Unix philosophy. It explains IMHO the superiority of the Unix view of combining tools for your task.



      You could use Clion, but you should be aware that there are other ways of doing the same. First, you might use other IDEs, such as DEV+C++, Code::Blocks, etc. Then I don't recommend using any IDE blindly, but being capable of combining other tools instead (I like using emacs + make + gdb + git together), which means understand the programs that your IDE is starting for you.



      Be sure to enable all warnings and debug info when compiling C or C++ code with GCC (or with Clang) (since warnings and debug info are not enabled by default). So pass -Wall -Wextra -g to your gcc or g++ (or clang++) compilation command. Later (when the program is debugged) you could pass some optimization flags (like -O2). Read how to invoke GCC.



      Try to build some existing free software programs (from their source code, e.g. on github). You'll learn a big lot (and you'll understand that they are usually designed in the Unix way).



      Regarding libraries, read the Program Library HowTo and later Drepper's How to write shared libraries. Be aware that the plugin machinery is very different on Linux (see dlopen(3) and dlsym(3)) and on Windows (Levine's book on Linkers and Loaders explains that well).



      I also recommend reading the Operating Systems: Three Easy Pieces textbook (freely available).



      Linux is mostly made of free software, and it is sometimes very useful to study the source code of some of them.




      What is the equivalent of VS solution file in Linux?




      There is none, and my answer explains why (and why you should not even dream of finding one). You'll invent another way of building your software on Linux.



      PS. Most of the answer above fits for not only Linux but also other Unix systems, including MacOSX (and probably Android).






      share|improve this answer


























      • Dunno, fine answer to me. Just upvoted to 0.

        – kebs
        Jan 4 at 15:58











      • @BasileStarynkevitch Probably because you recommend emacs over vim.

        – Fred
        Jan 4 at 17:37



















      0














      To complete the other answers, it appears that Microsoft provides a Linux version of Visual Studio, see https://code.visualstudio.com/download



      Not quite sure of its capabilities (is it the same as the Windows version ?), but it should definitely be of some help.



      Other hint: I use Codeblocks (only as an enhanced editor, not for building. For that I use solely makefiles), and it appears it can import Visual Studio project/solution (for whatever these terms mean...)



      Finally, any good IDE should be able to create a project from a bunch of source files, once you tick some checkboxes to set the correct options.



      (Disclaimer: I did quit using Windows for more than 10 years)






      share|improve this answer



















      • 2





        Visual Studio Code is an entirely separate IDE that's available on Windows, Mac and Linux; from what I've seen it doesn't natively support the MSBuild system. It does support many languages, but requires external tools for compilation, and in my experience works better as a code editor than a full IDE. If OP has access to CLion it's definitely a better option for C++ than VS Code.

        – Nick Mertin
        Jan 4 at 19:43






      • 1





        Oh c'mon, you mean they have 2 different products, one named "Visual Studio" and the other one... "Visual Studio Code" ? Wow.

        – kebs
        Jan 4 at 21:21






      • 1





        and a third called Visual Studio for Mac which is purely a C# IDE.

        – Cinder Biscuits
        Jan 5 at 0:24



















      0















      • There is no such thing as the "Linux C++ IDE" cause there are many

      • CMakeLists.txt IS the cross-platform equivalent of "Solution files"






      share|improve this answer
























        Your Answer






        StackExchange.ifUsing("editor", function () {
        StackExchange.using("externalEditor", function () {
        StackExchange.using("snippets", function () {
        StackExchange.snippets.init();
        });
        });
        }, "code-snippets");

        StackExchange.ready(function() {
        var channelOptions = {
        tags: "".split(" "),
        id: "1"
        };
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function() {
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled) {
        StackExchange.using("snippets", function() {
        createEditor();
        });
        }
        else {
        createEditor();
        }
        });

        function createEditor() {
        StackExchange.prepareEditor({
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: true,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: 10,
        bindNavPrevention: true,
        postfix: "",
        imageUploader: {
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        },
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        });


        }
        });














        draft saved

        draft discarded


















        StackExchange.ready(
        function () {
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54041013%2fwhat-is-the-equivalent-of-solution-files-in-linux-c-ide%23new-answer', 'question_page');
        }
        );

        Post as a guest















        Required, but never shown

























        5 Answers
        5






        active

        oldest

        votes








        5 Answers
        5






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        1














        Solution files (.sln) and C++ project files (.vcxproj) are a Visual Studio custom format (more specifically, they are part of Microsoft's MSBuild build system). It might be possible to find (or write) an extension for another IDE that can read these files and emulate MSBuild, but if you have the CMake configuration file (CMakeLists.txt) you should be able to open that or its containing directory as a project in CLion (as was pointed out in the comments).



        If you don't have that file, and the project doesn't require particularly complex build steps, then you can probably just create a new CLion project "from existing source"; it should be able to generate the CMake files for you.






        share|improve this answer




























          1














          Solution files (.sln) and C++ project files (.vcxproj) are a Visual Studio custom format (more specifically, they are part of Microsoft's MSBuild build system). It might be possible to find (or write) an extension for another IDE that can read these files and emulate MSBuild, but if you have the CMake configuration file (CMakeLists.txt) you should be able to open that or its containing directory as a project in CLion (as was pointed out in the comments).



          If you don't have that file, and the project doesn't require particularly complex build steps, then you can probably just create a new CLion project "from existing source"; it should be able to generate the CMake files for you.






          share|improve this answer


























            1












            1








            1







            Solution files (.sln) and C++ project files (.vcxproj) are a Visual Studio custom format (more specifically, they are part of Microsoft's MSBuild build system). It might be possible to find (or write) an extension for another IDE that can read these files and emulate MSBuild, but if you have the CMake configuration file (CMakeLists.txt) you should be able to open that or its containing directory as a project in CLion (as was pointed out in the comments).



            If you don't have that file, and the project doesn't require particularly complex build steps, then you can probably just create a new CLion project "from existing source"; it should be able to generate the CMake files for you.






            share|improve this answer













            Solution files (.sln) and C++ project files (.vcxproj) are a Visual Studio custom format (more specifically, they are part of Microsoft's MSBuild build system). It might be possible to find (or write) an extension for another IDE that can read these files and emulate MSBuild, but if you have the CMake configuration file (CMakeLists.txt) you should be able to open that or its containing directory as a project in CLion (as was pointed out in the comments).



            If you don't have that file, and the project doesn't require particularly complex build steps, then you can probably just create a new CLion project "from existing source"; it should be able to generate the CMake files for you.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Jan 4 at 15:00









            Nick MertinNick Mertin

            680724




            680724

























                1














                Linux does not use VS solution files. They are specific to Windows and Visual Studio. You will need to use cmake -G to generate the appropriate platform-specific build files. ie. One of these, depending on which IDE you chose to use:



                Unix Makefiles               = Generates standard UNIX makefiles.
                Ninja = Generates build.ninja files.
                Watcom WMake = Generates Watcom WMake makefiles.
                CodeBlocks - Ninja = Generates CodeBlocks project files.
                CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
                CodeLite - Ninja = Generates CodeLite project files.
                CodeLite - Unix Makefiles = Generates CodeLite project files.
                Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
                Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
                KDevelop3 = Generates KDevelop 3 project files.
                KDevelop3 - Unix Makefiles = Generates KDevelop 3 project files.
                Kate - Ninja = Generates Kate project files.
                Kate - Unix Makefiles = Generates Kate project files.
                Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
                Sublime Text 2 - Unix Makefiles
                = Generates Sublime Text 2 project files.


                Since you are using CLion, I would suggest cmake -G "Unix Makefiles" which are supported by several popular Linux C++ IDEs as well as GNU/Linux tooling found universally on Linux.






                share|improve this answer






























                  1














                  Linux does not use VS solution files. They are specific to Windows and Visual Studio. You will need to use cmake -G to generate the appropriate platform-specific build files. ie. One of these, depending on which IDE you chose to use:



                  Unix Makefiles               = Generates standard UNIX makefiles.
                  Ninja = Generates build.ninja files.
                  Watcom WMake = Generates Watcom WMake makefiles.
                  CodeBlocks - Ninja = Generates CodeBlocks project files.
                  CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
                  CodeLite - Ninja = Generates CodeLite project files.
                  CodeLite - Unix Makefiles = Generates CodeLite project files.
                  Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
                  Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
                  KDevelop3 = Generates KDevelop 3 project files.
                  KDevelop3 - Unix Makefiles = Generates KDevelop 3 project files.
                  Kate - Ninja = Generates Kate project files.
                  Kate - Unix Makefiles = Generates Kate project files.
                  Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
                  Sublime Text 2 - Unix Makefiles
                  = Generates Sublime Text 2 project files.


                  Since you are using CLion, I would suggest cmake -G "Unix Makefiles" which are supported by several popular Linux C++ IDEs as well as GNU/Linux tooling found universally on Linux.






                  share|improve this answer




























                    1












                    1








                    1







                    Linux does not use VS solution files. They are specific to Windows and Visual Studio. You will need to use cmake -G to generate the appropriate platform-specific build files. ie. One of these, depending on which IDE you chose to use:



                    Unix Makefiles               = Generates standard UNIX makefiles.
                    Ninja = Generates build.ninja files.
                    Watcom WMake = Generates Watcom WMake makefiles.
                    CodeBlocks - Ninja = Generates CodeBlocks project files.
                    CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
                    CodeLite - Ninja = Generates CodeLite project files.
                    CodeLite - Unix Makefiles = Generates CodeLite project files.
                    Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
                    Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
                    KDevelop3 = Generates KDevelop 3 project files.
                    KDevelop3 - Unix Makefiles = Generates KDevelop 3 project files.
                    Kate - Ninja = Generates Kate project files.
                    Kate - Unix Makefiles = Generates Kate project files.
                    Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
                    Sublime Text 2 - Unix Makefiles
                    = Generates Sublime Text 2 project files.


                    Since you are using CLion, I would suggest cmake -G "Unix Makefiles" which are supported by several popular Linux C++ IDEs as well as GNU/Linux tooling found universally on Linux.






                    share|improve this answer















                    Linux does not use VS solution files. They are specific to Windows and Visual Studio. You will need to use cmake -G to generate the appropriate platform-specific build files. ie. One of these, depending on which IDE you chose to use:



                    Unix Makefiles               = Generates standard UNIX makefiles.
                    Ninja = Generates build.ninja files.
                    Watcom WMake = Generates Watcom WMake makefiles.
                    CodeBlocks - Ninja = Generates CodeBlocks project files.
                    CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
                    CodeLite - Ninja = Generates CodeLite project files.
                    CodeLite - Unix Makefiles = Generates CodeLite project files.
                    Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
                    Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
                    KDevelop3 = Generates KDevelop 3 project files.
                    KDevelop3 - Unix Makefiles = Generates KDevelop 3 project files.
                    Kate - Ninja = Generates Kate project files.
                    Kate - Unix Makefiles = Generates Kate project files.
                    Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
                    Sublime Text 2 - Unix Makefiles
                    = Generates Sublime Text 2 project files.


                    Since you are using CLion, I would suggest cmake -G "Unix Makefiles" which are supported by several popular Linux C++ IDEs as well as GNU/Linux tooling found universally on Linux.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Jan 4 at 15:05

























                    answered Jan 4 at 14:59









                    Cinder BiscuitsCinder Biscuits

                    2,6121526




                    2,6121526























                        1














                        First, approach Linux with a fresh mindset. Your question is implicitly asking for an exact equivalent of Microsoft products, and that is not reasonable and is not how Linux and other Unixes (and software development under it) work. On Linux (and other Unix systems, including MacOSX), you'll combine several tools for your job, e.g. a compiler (such as GCC or Clang), a linker and related utilities (binutils), a source code editor (you have lots of choice, I recommend emacs, but you could use vim, geany, gedit, etc... it is really a matter of taste), a debugger like gdb (and you really want to use it on the command line, since it is very powerful), a version control (I strongly recommend git), a build automation tool (like make or ninja), perhaps a documentation generator such as doxygen; maybe you'll do some ad-hoc metaprogramming with C or C++ code generators such as bison, SWIG,
                        Protobuf, etc... or thru your own script (in shell, AWK, Python, some generic preprocessor like GPP or m4, etc..). The cmake utility (which I don't like) is simply a Makefile generator (and the actual build is done by make), and in many cases writing that Makefile by hand is simpler.



                        In particular, you will need some time to learn how to do things the Linux way. Consider that you could need a few days or weeks of reading and learning. Don't expect to be "operational" immediately. Invest some time in learning command line tools and the Unix shell.



                        If you are programming for Linux (notably in C++ or C), you'll also need to understand Linux programming (and that takes some time). Read some book like ALP or something newer. Be aware of the syscalls(2). In some cases, you could be interested by C++ frameworks such as Qt, POCO, Boost, etc... (but I believe you still need to understand the basics of Linux programming, even if you use these frameworks).



                        Read the wikipage on Unix philosophy. It explains IMHO the superiority of the Unix view of combining tools for your task.



                        You could use Clion, but you should be aware that there are other ways of doing the same. First, you might use other IDEs, such as DEV+C++, Code::Blocks, etc. Then I don't recommend using any IDE blindly, but being capable of combining other tools instead (I like using emacs + make + gdb + git together), which means understand the programs that your IDE is starting for you.



                        Be sure to enable all warnings and debug info when compiling C or C++ code with GCC (or with Clang) (since warnings and debug info are not enabled by default). So pass -Wall -Wextra -g to your gcc or g++ (or clang++) compilation command. Later (when the program is debugged) you could pass some optimization flags (like -O2). Read how to invoke GCC.



                        Try to build some existing free software programs (from their source code, e.g. on github). You'll learn a big lot (and you'll understand that they are usually designed in the Unix way).



                        Regarding libraries, read the Program Library HowTo and later Drepper's How to write shared libraries. Be aware that the plugin machinery is very different on Linux (see dlopen(3) and dlsym(3)) and on Windows (Levine's book on Linkers and Loaders explains that well).



                        I also recommend reading the Operating Systems: Three Easy Pieces textbook (freely available).



                        Linux is mostly made of free software, and it is sometimes very useful to study the source code of some of them.




                        What is the equivalent of VS solution file in Linux?




                        There is none, and my answer explains why (and why you should not even dream of finding one). You'll invent another way of building your software on Linux.



                        PS. Most of the answer above fits for not only Linux but also other Unix systems, including MacOSX (and probably Android).






                        share|improve this answer


























                        • Dunno, fine answer to me. Just upvoted to 0.

                          – kebs
                          Jan 4 at 15:58











                        • @BasileStarynkevitch Probably because you recommend emacs over vim.

                          – Fred
                          Jan 4 at 17:37
















                        1














                        First, approach Linux with a fresh mindset. Your question is implicitly asking for an exact equivalent of Microsoft products, and that is not reasonable and is not how Linux and other Unixes (and software development under it) work. On Linux (and other Unix systems, including MacOSX), you'll combine several tools for your job, e.g. a compiler (such as GCC or Clang), a linker and related utilities (binutils), a source code editor (you have lots of choice, I recommend emacs, but you could use vim, geany, gedit, etc... it is really a matter of taste), a debugger like gdb (and you really want to use it on the command line, since it is very powerful), a version control (I strongly recommend git), a build automation tool (like make or ninja), perhaps a documentation generator such as doxygen; maybe you'll do some ad-hoc metaprogramming with C or C++ code generators such as bison, SWIG,
                        Protobuf, etc... or thru your own script (in shell, AWK, Python, some generic preprocessor like GPP or m4, etc..). The cmake utility (which I don't like) is simply a Makefile generator (and the actual build is done by make), and in many cases writing that Makefile by hand is simpler.



                        In particular, you will need some time to learn how to do things the Linux way. Consider that you could need a few days or weeks of reading and learning. Don't expect to be "operational" immediately. Invest some time in learning command line tools and the Unix shell.



                        If you are programming for Linux (notably in C++ or C), you'll also need to understand Linux programming (and that takes some time). Read some book like ALP or something newer. Be aware of the syscalls(2). In some cases, you could be interested by C++ frameworks such as Qt, POCO, Boost, etc... (but I believe you still need to understand the basics of Linux programming, even if you use these frameworks).



                        Read the wikipage on Unix philosophy. It explains IMHO the superiority of the Unix view of combining tools for your task.



                        You could use Clion, but you should be aware that there are other ways of doing the same. First, you might use other IDEs, such as DEV+C++, Code::Blocks, etc. Then I don't recommend using any IDE blindly, but being capable of combining other tools instead (I like using emacs + make + gdb + git together), which means understand the programs that your IDE is starting for you.



                        Be sure to enable all warnings and debug info when compiling C or C++ code with GCC (or with Clang) (since warnings and debug info are not enabled by default). So pass -Wall -Wextra -g to your gcc or g++ (or clang++) compilation command. Later (when the program is debugged) you could pass some optimization flags (like -O2). Read how to invoke GCC.



                        Try to build some existing free software programs (from their source code, e.g. on github). You'll learn a big lot (and you'll understand that they are usually designed in the Unix way).



                        Regarding libraries, read the Program Library HowTo and later Drepper's How to write shared libraries. Be aware that the plugin machinery is very different on Linux (see dlopen(3) and dlsym(3)) and on Windows (Levine's book on Linkers and Loaders explains that well).



                        I also recommend reading the Operating Systems: Three Easy Pieces textbook (freely available).



                        Linux is mostly made of free software, and it is sometimes very useful to study the source code of some of them.




                        What is the equivalent of VS solution file in Linux?




                        There is none, and my answer explains why (and why you should not even dream of finding one). You'll invent another way of building your software on Linux.



                        PS. Most of the answer above fits for not only Linux but also other Unix systems, including MacOSX (and probably Android).






                        share|improve this answer


























                        • Dunno, fine answer to me. Just upvoted to 0.

                          – kebs
                          Jan 4 at 15:58











                        • @BasileStarynkevitch Probably because you recommend emacs over vim.

                          – Fred
                          Jan 4 at 17:37














                        1












                        1








                        1







                        First, approach Linux with a fresh mindset. Your question is implicitly asking for an exact equivalent of Microsoft products, and that is not reasonable and is not how Linux and other Unixes (and software development under it) work. On Linux (and other Unix systems, including MacOSX), you'll combine several tools for your job, e.g. a compiler (such as GCC or Clang), a linker and related utilities (binutils), a source code editor (you have lots of choice, I recommend emacs, but you could use vim, geany, gedit, etc... it is really a matter of taste), a debugger like gdb (and you really want to use it on the command line, since it is very powerful), a version control (I strongly recommend git), a build automation tool (like make or ninja), perhaps a documentation generator such as doxygen; maybe you'll do some ad-hoc metaprogramming with C or C++ code generators such as bison, SWIG,
                        Protobuf, etc... or thru your own script (in shell, AWK, Python, some generic preprocessor like GPP or m4, etc..). The cmake utility (which I don't like) is simply a Makefile generator (and the actual build is done by make), and in many cases writing that Makefile by hand is simpler.



                        In particular, you will need some time to learn how to do things the Linux way. Consider that you could need a few days or weeks of reading and learning. Don't expect to be "operational" immediately. Invest some time in learning command line tools and the Unix shell.



                        If you are programming for Linux (notably in C++ or C), you'll also need to understand Linux programming (and that takes some time). Read some book like ALP or something newer. Be aware of the syscalls(2). In some cases, you could be interested by C++ frameworks such as Qt, POCO, Boost, etc... (but I believe you still need to understand the basics of Linux programming, even if you use these frameworks).



                        Read the wikipage on Unix philosophy. It explains IMHO the superiority of the Unix view of combining tools for your task.



                        You could use Clion, but you should be aware that there are other ways of doing the same. First, you might use other IDEs, such as DEV+C++, Code::Blocks, etc. Then I don't recommend using any IDE blindly, but being capable of combining other tools instead (I like using emacs + make + gdb + git together), which means understand the programs that your IDE is starting for you.



                        Be sure to enable all warnings and debug info when compiling C or C++ code with GCC (or with Clang) (since warnings and debug info are not enabled by default). So pass -Wall -Wextra -g to your gcc or g++ (or clang++) compilation command. Later (when the program is debugged) you could pass some optimization flags (like -O2). Read how to invoke GCC.



                        Try to build some existing free software programs (from their source code, e.g. on github). You'll learn a big lot (and you'll understand that they are usually designed in the Unix way).



                        Regarding libraries, read the Program Library HowTo and later Drepper's How to write shared libraries. Be aware that the plugin machinery is very different on Linux (see dlopen(3) and dlsym(3)) and on Windows (Levine's book on Linkers and Loaders explains that well).



                        I also recommend reading the Operating Systems: Three Easy Pieces textbook (freely available).



                        Linux is mostly made of free software, and it is sometimes very useful to study the source code of some of them.




                        What is the equivalent of VS solution file in Linux?




                        There is none, and my answer explains why (and why you should not even dream of finding one). You'll invent another way of building your software on Linux.



                        PS. Most of the answer above fits for not only Linux but also other Unix systems, including MacOSX (and probably Android).






                        share|improve this answer















                        First, approach Linux with a fresh mindset. Your question is implicitly asking for an exact equivalent of Microsoft products, and that is not reasonable and is not how Linux and other Unixes (and software development under it) work. On Linux (and other Unix systems, including MacOSX), you'll combine several tools for your job, e.g. a compiler (such as GCC or Clang), a linker and related utilities (binutils), a source code editor (you have lots of choice, I recommend emacs, but you could use vim, geany, gedit, etc... it is really a matter of taste), a debugger like gdb (and you really want to use it on the command line, since it is very powerful), a version control (I strongly recommend git), a build automation tool (like make or ninja), perhaps a documentation generator such as doxygen; maybe you'll do some ad-hoc metaprogramming with C or C++ code generators such as bison, SWIG,
                        Protobuf, etc... or thru your own script (in shell, AWK, Python, some generic preprocessor like GPP or m4, etc..). The cmake utility (which I don't like) is simply a Makefile generator (and the actual build is done by make), and in many cases writing that Makefile by hand is simpler.



                        In particular, you will need some time to learn how to do things the Linux way. Consider that you could need a few days or weeks of reading and learning. Don't expect to be "operational" immediately. Invest some time in learning command line tools and the Unix shell.



                        If you are programming for Linux (notably in C++ or C), you'll also need to understand Linux programming (and that takes some time). Read some book like ALP or something newer. Be aware of the syscalls(2). In some cases, you could be interested by C++ frameworks such as Qt, POCO, Boost, etc... (but I believe you still need to understand the basics of Linux programming, even if you use these frameworks).



                        Read the wikipage on Unix philosophy. It explains IMHO the superiority of the Unix view of combining tools for your task.



                        You could use Clion, but you should be aware that there are other ways of doing the same. First, you might use other IDEs, such as DEV+C++, Code::Blocks, etc. Then I don't recommend using any IDE blindly, but being capable of combining other tools instead (I like using emacs + make + gdb + git together), which means understand the programs that your IDE is starting for you.



                        Be sure to enable all warnings and debug info when compiling C or C++ code with GCC (or with Clang) (since warnings and debug info are not enabled by default). So pass -Wall -Wextra -g to your gcc or g++ (or clang++) compilation command. Later (when the program is debugged) you could pass some optimization flags (like -O2). Read how to invoke GCC.



                        Try to build some existing free software programs (from their source code, e.g. on github). You'll learn a big lot (and you'll understand that they are usually designed in the Unix way).



                        Regarding libraries, read the Program Library HowTo and later Drepper's How to write shared libraries. Be aware that the plugin machinery is very different on Linux (see dlopen(3) and dlsym(3)) and on Windows (Levine's book on Linkers and Loaders explains that well).



                        I also recommend reading the Operating Systems: Three Easy Pieces textbook (freely available).



                        Linux is mostly made of free software, and it is sometimes very useful to study the source code of some of them.




                        What is the equivalent of VS solution file in Linux?




                        There is none, and my answer explains why (and why you should not even dream of finding one). You'll invent another way of building your software on Linux.



                        PS. Most of the answer above fits for not only Linux but also other Unix systems, including MacOSX (and probably Android).







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited Jan 7 at 7:33

























                        answered Jan 4 at 15:34









                        Basile StarynkevitchBasile Starynkevitch

                        180k13175376




                        180k13175376













                        • Dunno, fine answer to me. Just upvoted to 0.

                          – kebs
                          Jan 4 at 15:58











                        • @BasileStarynkevitch Probably because you recommend emacs over vim.

                          – Fred
                          Jan 4 at 17:37



















                        • Dunno, fine answer to me. Just upvoted to 0.

                          – kebs
                          Jan 4 at 15:58











                        • @BasileStarynkevitch Probably because you recommend emacs over vim.

                          – Fred
                          Jan 4 at 17:37

















                        Dunno, fine answer to me. Just upvoted to 0.

                        – kebs
                        Jan 4 at 15:58





                        Dunno, fine answer to me. Just upvoted to 0.

                        – kebs
                        Jan 4 at 15:58













                        @BasileStarynkevitch Probably because you recommend emacs over vim.

                        – Fred
                        Jan 4 at 17:37





                        @BasileStarynkevitch Probably because you recommend emacs over vim.

                        – Fred
                        Jan 4 at 17:37











                        0














                        To complete the other answers, it appears that Microsoft provides a Linux version of Visual Studio, see https://code.visualstudio.com/download



                        Not quite sure of its capabilities (is it the same as the Windows version ?), but it should definitely be of some help.



                        Other hint: I use Codeblocks (only as an enhanced editor, not for building. For that I use solely makefiles), and it appears it can import Visual Studio project/solution (for whatever these terms mean...)



                        Finally, any good IDE should be able to create a project from a bunch of source files, once you tick some checkboxes to set the correct options.



                        (Disclaimer: I did quit using Windows for more than 10 years)






                        share|improve this answer



















                        • 2





                          Visual Studio Code is an entirely separate IDE that's available on Windows, Mac and Linux; from what I've seen it doesn't natively support the MSBuild system. It does support many languages, but requires external tools for compilation, and in my experience works better as a code editor than a full IDE. If OP has access to CLion it's definitely a better option for C++ than VS Code.

                          – Nick Mertin
                          Jan 4 at 19:43






                        • 1





                          Oh c'mon, you mean they have 2 different products, one named "Visual Studio" and the other one... "Visual Studio Code" ? Wow.

                          – kebs
                          Jan 4 at 21:21






                        • 1





                          and a third called Visual Studio for Mac which is purely a C# IDE.

                          – Cinder Biscuits
                          Jan 5 at 0:24
















                        0














                        To complete the other answers, it appears that Microsoft provides a Linux version of Visual Studio, see https://code.visualstudio.com/download



                        Not quite sure of its capabilities (is it the same as the Windows version ?), but it should definitely be of some help.



                        Other hint: I use Codeblocks (only as an enhanced editor, not for building. For that I use solely makefiles), and it appears it can import Visual Studio project/solution (for whatever these terms mean...)



                        Finally, any good IDE should be able to create a project from a bunch of source files, once you tick some checkboxes to set the correct options.



                        (Disclaimer: I did quit using Windows for more than 10 years)






                        share|improve this answer



















                        • 2





                          Visual Studio Code is an entirely separate IDE that's available on Windows, Mac and Linux; from what I've seen it doesn't natively support the MSBuild system. It does support many languages, but requires external tools for compilation, and in my experience works better as a code editor than a full IDE. If OP has access to CLion it's definitely a better option for C++ than VS Code.

                          – Nick Mertin
                          Jan 4 at 19:43






                        • 1





                          Oh c'mon, you mean they have 2 different products, one named "Visual Studio" and the other one... "Visual Studio Code" ? Wow.

                          – kebs
                          Jan 4 at 21:21






                        • 1





                          and a third called Visual Studio for Mac which is purely a C# IDE.

                          – Cinder Biscuits
                          Jan 5 at 0:24














                        0












                        0








                        0







                        To complete the other answers, it appears that Microsoft provides a Linux version of Visual Studio, see https://code.visualstudio.com/download



                        Not quite sure of its capabilities (is it the same as the Windows version ?), but it should definitely be of some help.



                        Other hint: I use Codeblocks (only as an enhanced editor, not for building. For that I use solely makefiles), and it appears it can import Visual Studio project/solution (for whatever these terms mean...)



                        Finally, any good IDE should be able to create a project from a bunch of source files, once you tick some checkboxes to set the correct options.



                        (Disclaimer: I did quit using Windows for more than 10 years)






                        share|improve this answer













                        To complete the other answers, it appears that Microsoft provides a Linux version of Visual Studio, see https://code.visualstudio.com/download



                        Not quite sure of its capabilities (is it the same as the Windows version ?), but it should definitely be of some help.



                        Other hint: I use Codeblocks (only as an enhanced editor, not for building. For that I use solely makefiles), and it appears it can import Visual Studio project/solution (for whatever these terms mean...)



                        Finally, any good IDE should be able to create a project from a bunch of source files, once you tick some checkboxes to set the correct options.



                        (Disclaimer: I did quit using Windows for more than 10 years)







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered Jan 4 at 15:34









                        kebskebs

                        3,16912552




                        3,16912552








                        • 2





                          Visual Studio Code is an entirely separate IDE that's available on Windows, Mac and Linux; from what I've seen it doesn't natively support the MSBuild system. It does support many languages, but requires external tools for compilation, and in my experience works better as a code editor than a full IDE. If OP has access to CLion it's definitely a better option for C++ than VS Code.

                          – Nick Mertin
                          Jan 4 at 19:43






                        • 1





                          Oh c'mon, you mean they have 2 different products, one named "Visual Studio" and the other one... "Visual Studio Code" ? Wow.

                          – kebs
                          Jan 4 at 21:21






                        • 1





                          and a third called Visual Studio for Mac which is purely a C# IDE.

                          – Cinder Biscuits
                          Jan 5 at 0:24














                        • 2





                          Visual Studio Code is an entirely separate IDE that's available on Windows, Mac and Linux; from what I've seen it doesn't natively support the MSBuild system. It does support many languages, but requires external tools for compilation, and in my experience works better as a code editor than a full IDE. If OP has access to CLion it's definitely a better option for C++ than VS Code.

                          – Nick Mertin
                          Jan 4 at 19:43






                        • 1





                          Oh c'mon, you mean they have 2 different products, one named "Visual Studio" and the other one... "Visual Studio Code" ? Wow.

                          – kebs
                          Jan 4 at 21:21






                        • 1





                          and a third called Visual Studio for Mac which is purely a C# IDE.

                          – Cinder Biscuits
                          Jan 5 at 0:24








                        2




                        2





                        Visual Studio Code is an entirely separate IDE that's available on Windows, Mac and Linux; from what I've seen it doesn't natively support the MSBuild system. It does support many languages, but requires external tools for compilation, and in my experience works better as a code editor than a full IDE. If OP has access to CLion it's definitely a better option for C++ than VS Code.

                        – Nick Mertin
                        Jan 4 at 19:43





                        Visual Studio Code is an entirely separate IDE that's available on Windows, Mac and Linux; from what I've seen it doesn't natively support the MSBuild system. It does support many languages, but requires external tools for compilation, and in my experience works better as a code editor than a full IDE. If OP has access to CLion it's definitely a better option for C++ than VS Code.

                        – Nick Mertin
                        Jan 4 at 19:43




                        1




                        1





                        Oh c'mon, you mean they have 2 different products, one named "Visual Studio" and the other one... "Visual Studio Code" ? Wow.

                        – kebs
                        Jan 4 at 21:21





                        Oh c'mon, you mean they have 2 different products, one named "Visual Studio" and the other one... "Visual Studio Code" ? Wow.

                        – kebs
                        Jan 4 at 21:21




                        1




                        1





                        and a third called Visual Studio for Mac which is purely a C# IDE.

                        – Cinder Biscuits
                        Jan 5 at 0:24





                        and a third called Visual Studio for Mac which is purely a C# IDE.

                        – Cinder Biscuits
                        Jan 5 at 0:24











                        0















                        • There is no such thing as the "Linux C++ IDE" cause there are many

                        • CMakeLists.txt IS the cross-platform equivalent of "Solution files"






                        share|improve this answer




























                          0















                          • There is no such thing as the "Linux C++ IDE" cause there are many

                          • CMakeLists.txt IS the cross-platform equivalent of "Solution files"






                          share|improve this answer


























                            0












                            0








                            0








                            • There is no such thing as the "Linux C++ IDE" cause there are many

                            • CMakeLists.txt IS the cross-platform equivalent of "Solution files"






                            share|improve this answer














                            • There is no such thing as the "Linux C++ IDE" cause there are many

                            • CMakeLists.txt IS the cross-platform equivalent of "Solution files"







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Jan 4 at 21:12









                            SlavaSlava

                            1,2011217




                            1,2011217






























                                draft saved

                                draft discarded




















































                                Thanks for contributing an answer to Stack Overflow!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid



                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.


                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function () {
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54041013%2fwhat-is-the-equivalent-of-solution-files-in-linux-c-ide%23new-answer', 'question_page');
                                }
                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown







                                Popular posts from this blog

                                Angular Downloading a file using contenturl with Basic Authentication

                                Olmecas

                                Can't read property showImagePicker of undefined in react native iOS