问题描述
我正在尝试编译hello world程序。我使用了以下链接提供的CMakeList:https://github.com/remymuller/juce-cmake
CMakeLists.txt
$ cat CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(HelloWorld)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "/home/sulakshana/Documents/evon/work/juce/helloworld/NewProject/juce-cmake/cmake/")
find_package(JUCE required
COMPONENTS
juce_core
juce_data_structures
juce_events
juce_graphics
juce_gui_basics
juce_gui_extra
)
set(SOURCES
../../Source/Main.cpp
../../Source/MainComponent.h
../../Source/MainComponent.cpp
)
add_executable(${PROJECT_NAME} ${SOURCES})
set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE true)
target_link_libraries(${PROJECT_NAME} ${JUCE_LIBRARIES})
source_group(Source FILES ${SOURCES})
我使用了这个.cmake:https://github.com/remymuller/juce-cmake/blob/master/cmake/FindJUCE.cmake
文件夹结构:
juce-cmake
是上述链接存储库的克隆:
$ ls
Builds juce-cmake JuceLibraryCode NewProject.jucer Source
CMakeLists.txt的位置:
/Builds/LinuxMakefile$ ls
build buildCMake CMakeLists.txt Makefile
错误:
$ cmake ..
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
Cannot specify sources for imported target "juce_core".
Call Stack (most recent call first):
/home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
CMakeLists.txt:7 (find_package)
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
Cannot specify sources for imported target "juce_data_structures".
Call Stack (most recent call first):
/home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
CMakeLists.txt:7 (find_package)
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
Cannot specify sources for imported target "juce_events".
Call Stack (most recent call first):
/home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:363 (juce_add_module)
/home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
CMakeLists.txt:7 (find_package)
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
Cannot specify sources for imported target "juce_graphics".
Call Stack (most recent call first):
/home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
CMakeLists.txt:7 (find_package)
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
Cannot specify sources for imported target "juce_gui_basics".
Call Stack (most recent call first):
/home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
CMakeLists.txt:7 (find_package)
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:344 (target_sources):
Cannot specify sources for imported target "juce_gui_extra".
Call Stack (most recent call first):
/home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:490 (juce_add_module)
CMakeLists.txt:7 (find_package)
CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/AppConfig.h.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:264 (configure_file):
configure_file Problem configuring file
Call Stack (most recent call first):
/home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:501 (juce_generate_app_config)
CMakeLists.txt:7 (find_package)
CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/JuceHeader.h.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:283 (configure_file):
configure_file Problem configuring file
Call Stack (most recent call first):
/home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:514 (juce_generate_juce_header)
CMakeLists.txt:7 (find_package)
CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
configure_file Problem configuring file
Call Stack (most recent call first):
CMakeLists.txt:7 (find_package)
CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
configure_file Problem configuring file
Call Stack (most recent call first):
CMakeLists.txt:7 (find_package)
CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
configure_file Problem configuring file
Call Stack (most recent call first):
CMakeLists.txt:7 (find_package)
CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
configure_file Problem configuring file
Call Stack (most recent call first):
CMakeLists.txt:7 (find_package)
CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
configure_file Problem configuring file
Call Stack (most recent call first):
CMakeLists.txt:7 (find_package)
CMake Error: File /home/sulakshana/Documents/evon/work/juce/helloworld/FindJuceTemplates/include_juce_module.cpp.in does not exist.
CMake Error at /home/sulakshana/Documents/evon/work/juce/helloworld/FindJUCE.cmake:566 (configure_file):
configure_file Problem configuring file
Call Stack (most recent call first):
CMakeLists.txt:7 (find_package)
-- Configuring incomplete,errors occurred!
See also "/home/sulakshana/Documents/evon/work/juce/helloworld/NewProject/Builds/LinuxMakefile/buildCMake/CMakeFiles/CMakeOutput.log".
解决方法
此模块依赖于CMake 3.11中添加的功能。确保您至少具有该版本。
最后一组错误是因为您仅复制了FindJUCE.cmake
文件,而不复制它附带的FindJuceTemplates
目录。我建议将整个存储库克隆/下载到您的工作目录中(或将其添加为Git子模块),然后将其包括在内。您可能需要将CMAKE_MODULE_PATH
指向子目录。