Tôi đang theo dõi this question. Tuy nhiên, cmake
khuôn mặt của mình có lỗi:cmake: khoảng trắng đầu hoặc cuối (chính sách CMP0004)
-- Configuring done
CMake Error at CMakeLists.txt:18 (add_executable):
Target "main" links to item "-L/usr/lib/x86_64-linux-gnu -lSDL2 " which has
leading or trailing whitespace. This is now an error according to policy
CMP0004.
-- Generating done
Có gì sai với danh sách cmake
?
Tôi không nghĩ rằng chênh lệch phiên bản nhỏ cmake
dẫn đến lỗi như vậy.
# CMakeLists.txt
cmake_minimum_required(VERSION 3.5.1)
project (main)
add_executable(main
main.cpp
)
find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})
target_link_libraries(main ${SDL2_LIBRARIES})
.
// main.cpp
int main()
{
return 0;
}
Cập nhật:
Nội dung của /usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake
là
# sdl2 cmake project-config input for ./configure scripts
set(prefix "/usr")
set(exec_prefix "${prefix}")
set(libdir "${prefix}/lib/x86_64-linux-gnu")
set(SDL2_PREFIX "/usr")
set(SDL2_EXEC_PREFIX "/usr")
set(SDL2_LIBDIR "${prefix}/lib/x86_64-linux-gnu")
set(SDL2_INCLUDE_DIRS "${prefix}/include/SDL2")
set(SDL2_LIBRARIES "-L${SDL2_LIBDIR} -lSDL2 ")
Điều này có vẻ như là một vấn đề trong tệp cấu hình gói SDL2 được cung cấp (nhưng tôi không sử dụng SDL2, vì vậy tôi không thể nhận xét thêm). – Angew
Nên có tệp «sdl2-config.cmake' được cài đặt SDL2 của bạn (nó có thể là một phần của gói' libsdl2-dev' hoặc hơn). Hiển thị nội dung của tệp này. Nếu nó trông như thế này: https://github.com/xerpi/SDL-Vita/blob/master/sdl2-config.cmake.in (nội dung của biến * SD2_LIBRARIES * được kèm theo dấu ngoặc kép), thì lỗi có thể hiểu được . Sửa chữa nhanh có thể loại bỏ các dấu ngoặc kép này. – Tsyvarev
@Tsyvarev, đã cập nhật. – ar2015