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 373 Точки

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

 

Както гласи грешката - явно ти липсва създаването на проект в основния 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 373 Точки

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

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 373 Точки

Привет, AlperAli2,

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

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.