Ryan Cocuzzo
Ryan Cocuzzo

Reputation: 3219

Compile & Run CLion Project from Terminal

I am trying to create generally-accessible compile & run instructions for my CLion project, but can't find the exact terminal command it uses to execute the program (it's makefile, I would assume). From the project directory in the terminal, how would I do this?

The directory looks like this:

file dir

Upvotes: 0

Views: 8726

Answers (3)

c z
c z

Reputation: 8958

CLion can tell you, you don't need to hunt.

CMake command line

  • Select tools\cmake\reload cmake project.
  • The command line is shown in the CMake window.

Build command line

  • Select build\build project.
  • The command line is shown in the messages window.

Example

Mine look like this:

"C:\Program Files\JetBrains\CLion 2021.2.2\bin\cmake\win\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug "-DCMAKE_MAKE_PROGRAM=C:/Program Files/JetBrains/CLion 2021.2.2/bin/ninja/win/ninja.exe" -G Ninja -S C:\some_application -B C:\some_application\cmake-build-debug
...
"C:\Program Files\JetBrains\CLion 2021.2.2\bin\cmake\win\bin\cmake.exe" --build C:\some_application\cmake-build-debug --target all -j 9

Reminder

If using Visual Studio you still to specify which environment you are using. Typically this involves using the VS command prompt or executing one of the premade scripts to set up the environment variables. See here.

Upvotes: 1

Gardener
Gardener

Reputation: 2660

I will add a little bit to @Stanley F.'s excellent answer.

FROM the root of the CLion project, this is what works for me. I generally run with a debug profile. The same can be reproduced for release.

When cmake loads its project, it runs

cmake -Bcmake-debug-build -H. ${CMakeOptions}

where CMakeOptions is stored in CLion at

CLion->settings->Build,Execution, Deployment->CMake->[profile]->CMake Options

My general cmake build option is

-DCMAKE_BUILD_TYPE=debug -DSYTEM_ARCH=Linux-gcc5.3.0-x86_645 -CMAKE_CXX_STANDARD=14

[Note the lower-case d for 'debug'. If I do not use this, my system will not work. I wish that CLion did not default to 'Debug']

So, to reproduce what CLion creates upon project reload, I run

rm -rf cmake-debug-build  
cmake -Bcmake-debug-build -H. -DCMAKE_BUILD_TYPE=debug -DSYTEM_ARCH=Linux-gcc5.3.0-x86_645 -CMAKE_CXX_STANDARD=14

Then, to build the project, I run

cmake --build cmake-build-debug --target all

Please note that when I run the first cmake command (from CLion or the command line), cmake pulls in lots of libraries from other "precedent" projects as part of the processing of my CMakeLists.txt file. If anything in one of those precedent projects changes, I will not pull them in anew, unless I physically delete the entire cmake-build-debug/ directory. None of CLion's reset tool menu items from my experience will delete that file.

If I am running these commands from the CLion menus, then I have to physically delete the cmake-build-debug/ directory as well (if I have a change in one of the external libraries that I want to pull in).

Upvotes: 3

Stanley F.
Stanley F.

Reputation: 1974

CLion currently only supports CMake projects. So you have to invoke the CMake executable with the appropriate parameters for your project.

At first, you can delete the cmake-build-debug folder, since this is auto-generated by CLion, which itself invokes CMake. It only contains temporary files.

So your build environment basically contains the 3DTable.c, 3DTable.h and CMakeLists.txt files. At least this is what I get from the screenshot.

To build the project from command line, first navigate to the source directory. Then invoke CMake:

cd <source path of Project_1>
cmake -Bbuild -H.
cmake --build build --target all

Notes:

  • build is the directory, where CMake will generate temporary files and the build artifacts.
  • The -H. option tells CMake, where the CMakeLists.txt file is located, which in this case is the current working directory.
  • The library / executable for your project will be located within the build directory

Upvotes: 1

Related Questions