Проблемы с CMake и настраиваемой структурой проекта [дубликат]

Если вы установите на компьютер Heroku gem , вы можете запустить свои задачи cron вручную следующим образом:

  $ heroku rake cron (in / disk1 /  home / slugs / xxxxxx_aa515b2_6c4f / mnt) Запуск cron в 2010/04/25 10:28:54 ...  

Это будет выполнять тот же самый код, что и ежедневный / на делает; т. е. для этого, ваше приложение должно иметь Rakefile с задачей cron , например:

  desc «Выполняет задачи обслуживания cron».  Задача: cron do puts «Running cron at # {Time.now.strftime ('% Y /% m /% d% H:% M:% S')} ..." # TODO: ваш cron-код заканчивается здесь   

Теперь добавьте команду heroku rake cron в crontab на любом вашем сервере Unix или даже прямо на crontab вашего персонального компьютера , если вы используете Linux или Mac OS X, и вы можете планировать задания cron для своего приложения Heroku по своему усмотрению и без взимания платы за него.

46
задан Chris Covert 3 August 2012 в 19:31
поделиться

7 ответов

Попробуйте изменить

PROJECT(HelloWorld C)

на

PROJECT(HelloWorld C CXX)

или просто

PROJECT(HelloWorld)

Смотрите: http: //www.cmake .org / CMake / помощь / v2.8.8 / cmake.html # команда: проект

30
ответ дан olovb 16 August 2018 в 04:42
поделиться
  • 1
    Это не помогло мне. Ошибка компоновщика осталась, см. Мой ответ, что помогло исправить это. – Joakim 21 May 2013 в 12:41
  • 2
    enable_language(CXX) работал для меня. – shuva 21 March 2018 в 21:52

По умолчанию исходная папка JNI называется jni. Переименование его в cpp исправило проблему

0
ответ дан HimalayanCoder 16 August 2018 в 04:42
поделиться

Как бы то ни было, ошибка также возникает, когда файл cpp, включенный в проект, не существует.

Если вы перечислите исходные файлы в CMakeLists.txt и ошибочно введите имя файла, тогда вы получите эту ошибку.

3
ответ дан Jolly Roger 16 August 2018 в 04:42
поделиться
  • 1
    Пожалуйста, сделайте это как в разделе комментариев. – Virb 4 April 2018 в 06:50
  • 2
    Рад, что я нашел это, стал почти сумасшедшим! Благодаря! – tuket 29 July 2018 в 21:40

В моем случае это было просто из-за отсутствия исходного файла в целевом объекте. Вся моя библиотека была шаблоном с исходным кодом в заголовке. Добавление пустой file.cpp решило проблему.

27
ответ дан Moebius 16 August 2018 в 04:42
поделиться
  • 1
    set target properties также работает для проблемы с отсутствием cpp-файла. – Denise Skidmore 26 February 2016 в 16:29
  • 2
    Престижность для наконечника. Я также забыл переместить мои источники в соответствующий подкаталог src моего недавно созданного проекта cmake (общая библиотека), и это было в основном причиной всей проблемы. В таких случаях действительно стоит иметь мастера, который позаботится о структуре вашего проекта cmake. : D – rbaleksandar 27 May 2016 в 14:52
  • 3
    Та же причина здесь (ошибка копирования-пасты). Благодаря! – Vivit 28 October 2016 в 14:17

Я также столкнулся с подобной ошибкой при компиляции моего кода на основе C. Я исправил проблему, исправив путь к исходному файлу в файле cmake. Проверьте исходный файл в каждом исходном файле, указанном в файле cmake. Это может вам помочь.

0
ответ дан Robert Columbia 16 August 2018 в 04:42
поделиться

Я также получил указанную вами ошибку:

CMake Error: CMake can not determine linker language for target:helloworld
CMake Error: Cannot determine link language for target "helloworld".

В моем случае это было связано с наличием файлов C ++ с расширением .cc.

Если CMake не может правильно определите язык кода, вы можете использовать следующее:

set_target_properties(hello PROPERTIES LINKER_LANGUAGE CXX)

Принятый ответ, предполагающий добавление языка в оператор project(), просто добавляет более строгую проверку того, какой язык используется (согласно документация), но мне это не помогло:

При желании вы можете указать, какие языки поддерживает ваш проект. Например, языки CXX (например, C ++), C, Fortran и т. Д. По умолчанию C и CXX включены. Например. если у вас нет компилятора C ++, вы можете отключить проверку для него, явно указав языки, которые хотите поддерживать, например. C. При использовании специального языка «NONE» все проверки для любого языка могут быть отключены. Если существует переменная, которая называется CMAKE_PROJECT__INCLUDE_FILE, файл, на который указывает эта переменная, будет включен в качестве последнего шага команды проекта.

88
ответ дан tambre 16 August 2018 в 04:42
поделиться
0
ответ дан AKJ 29 October 2018 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: