Професионална програма
Loading...
AlperAli2 avatar AlperAli2 3 Точки

CMake Warning (dev) int CMakeList.txt.

Здравейте,когато напиша cmake .. ,изписва следната грешка

CMake Warning (dev) int CMakeList.txt.

No project( command is present.The top-level CMakeLists.txt file must contain a literal,direct call to the project() comand.Add a line of code such as 

project(ProjectName)

near the top of the file,but after cmake_minimum-required().

Cmake is pretending there is a "project(Project)" command on the first line.

This warning is for project developers. Use -Wno-dev to suppresess it.

Пробвах какво ли не, но не откривам грешката си. Моля някой да ме насочи. 

Тагове:
1
C++ Applications Development
j.petrov_90 avatar j.petrov_90 313 Точки

Привет, колега,

 

Както гласи грешката - явно ти липсва създаването на проект в основния CMakeList.txt.

Нещо от сорта на

project(HelloWorld)

където HelloWorld е името на проекта ти.

 

Би ли споделил съдържанието си на Cmake файла за за мога да ти дам по-конкретен отговор.

 

П.С. ще съм благодарен и ако ми покажеш как извикваш Cmake файла си и от къде го извикваш (т.е. файловата структура на проекта ти)

Поздрави

 

 

1
09/10/2021 20:21:56
AlperAli2 avatar AlperAli2 3 Точки

съдържанието на CMakeList.txt.

cmake_minimum_required(VERSION 3.5.1)
project(hello_world)
set(_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR)}
add_executable(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp

Извиквам cmake файла както показано във видеото.Създавам build папката,извиквам cmake(cmake .. от терминала,когато съм в build папката,workspace/HelloWorld/build)

,после make,но не се билдва проекта.На виртуална машина съм ,ако е от значение.

 

1
09/10/2021 20:54:36
j.petrov_90 avatar j.petrov_90 313 Точки

Привет отвоно, колега,

CMake файлът ти е абсолютно верен.

Не мога да съм сигурен какъв е проблема, затова ще изложа хипотезата си.

Ще го подкараме, спокойно:)

 

CMake не е много добър в това "динамично" да се възстанови от грешки.

Т.е. ако си имал някоя стара грешка Cmake може да я е запазил (да я е кеширал локално в папката).

Така при последващи извиквания на Cmake се виждат грешни резултати.

Как може да се поправи това нещо?

Просто изтрий абсолютно цялото съдължание на папката build.

rm -rf * , когато си вътре в папката.

Сега опитай да ръннеш cmake отново.

 

Това, което ме озадъчава е факта, че грешката ти твърди, че

Cmake is pretending there is a "project(Project)" command on the first line

Т.е. на теория имаш автоматично генериран target, който се казва "Project"

Би следвало да можеш да build-неш този target.

Ти твърдиш, че не можеш да го билднеш, което значи 2 неща:

- горната хипотеза е вярна

- main.cpp файлът ти не се намира там, където си казал че е.

 

Теория 3:

Имаш няколко Cmake файла и не извикваш правилния.

Т.е. файлът, който показа не е Cmake файлът, който седи на root проектно ниво.

 

Пробвай нещата казани до момента.

Ако не сработят напиши следната информация:

- какъв ОС ползваш. Например Ubuntu 18.04

-коя версия на cmake ползваш. Можеш да го разбереш като напишеш на терминала cmake -- version

- покажи ми цялата си файлова структура на проекта. Къде се намира Cmake файла, къде се намира main.cpp файла и т.н.

-покажи ми output-а като викнеш make

- покажи ми съдържанието на папката build след като си ръннал cmake .. от нея. Това става с командата ls, когато си в папката build

 

Поздрави

 

0
09/10/2021 22:41:57
j.petrov_90 avatar j.petrov_90 313 Точки

Привет, AlperAli2,

Успя ли да разрешиш проблема или все още не се получава?

0
AlperAli2 avatar AlperAli2 3 Точки

Да , просто не съм запаметявал файловете,преди да ги билдна .

1
j.petrov_90 avatar j.petrov_90 313 Точки

Супер!
Радвам се, че си разрешил проблема :)

Ще те помоля само в бъдеще - напиши 2 думи дали се е оправил проблема или не.
Или поне дай upvote на коментара.

Така и аз и други хора, които четат темата ще разберат, че сме разрешили казуса.
Това би им помогнало, ако попаднат в същата ситуация.

Поздрави

0
AlperAli2 avatar AlperAli2 3 Точки

Окей,благодаря Ви за съдействието .

0