Closed dong2dong3 closed 1 year ago
@dong2dong3
首先你需要说清目前想要编译到哪个平台(我猜应该是switch)
然后你可以把构建目录删除,从cmake指令开始记录log。
最后,目前在switch平台推荐使用旧版本的docker镜像构建(按照readme说明执行即可),最新的devkitA64环境貌似存在问题(vsnprintf线程不安全导致播放器蓝屏或闪退),我已经给作者提了 issue 不过还没有收到回复。
@xfangfang 是在mac(macOS Monterey 12.5)上构建 switch的build. 第一次接触cmake 卡在了最后一步一上午 make -C cmake-build-switch wiliwili.nro -j$(nproc)
.请问下构建指令中有找cmake的安装路径的配置吗?我的的path在/usr/local/bin, 但是它一直从/usr/bin里面找. 谢谢
我也不了解为什么会报错,这应该是make自己的行为。
我的建议前面也说了:彻底删除构建目录,重新构建,并把log完整地发出来。
或者,直接使用docker构建
➜ wiliwili git:(yoga) cmake -B cmake-build-switch
GLFW
-- building from git tag v1.0.1-8-gaf95734
-- building from git commit af95734
building for SWITCH
Build Type: Debug
DEVKITPRO: /opt/devkitpro
-- PKG_CONFIG_EXECUTABLE = /opt/devkitpro/portlibs/switch/bin/aarch64-none-elf-pkg-config
-- CMAKE_EXE_LINKER_FLAGS = -march=armv8-a+crc+crypto -mtune=cortex-a57 -mtp=soft -ftls-model=local-exec -L/opt/devkitpro/libnx/lib -L/opt/devkitpro/portlibs/switch/lib -fPIE -specs=/opt/devkitpro/libnx/switch.specs
-- CMAKE_C_COMPILER = /opt/devkitpro/devkitA64/bin/aarch64-none-elf-gcc
-- CMAKE_CXX_COMPILER = /opt/devkitpro/devkitA64/bin/aarch64-none-elf-g++
-- NX_NACP=/opt/devkitpro/tools/bin/nacptool
-- NX_ELF2NRO=/opt/devkitpro/tools/bin/elf2nro
-- CXX standard: 17
-- C++ Requests CMake Options
-- =======================================================
-- CPR_GENERATE_COVERAGE: OFF
-- CPR_CURL_NOSIGNAL: OFF
-- CURL_VERBOSE_LOGGING: OFF
-- CPR_USE_SYSTEM_GTEST: OFF
-- CPR_USE_SYSTEM_CURL: ON
-- CPR_ENABLE_CURL_HTTP_ONLY: ON
-- CPR_ENABLE_SSL: OFF
-- CPR_FORCE_OPENSSL_BACKEND: OFF
-- CPR_FORCE_WINSSL_BACKEND: OFF
-- CPR_FORCE_DARWINSSL_BACKEND: OFF
-- CPR_FORCE_MBEDTLS_BACKEND: ON
-- CPR_ENABLE_LINTING: OFF
-- CPR_ENABLE_CPPCHECK: OFF
-- CPR_BUILD_TESTS: OFF
-- CPR_BUILD_TESTS_SSL: OFF
-- CPR_BUILD_TESTS_PROXY: OFF
-- CPR_SKIP_CA_BUNDLE_SEARCH: OFF
-- CPR_USE_BOOST_FILESYSTEM: OFF
-- CPR_DEBUG_SANITIZER_FLAG_THREAD: OFF
-- CPR_DEBUG_SANITIZER_FLAG_ADDR: OFF
-- CPR_DEBUG_SANITIZER_FLAG_LEAK: OFF
-- CPR_DEBUG_SANITIZER_FLAG_UB: OFF
-- CPR_DEBUG_SANITIZER_FLAG_ALL: OFF
-- =======================================================
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
CMake Error at library/cpr/CMakeLists.txt:201 (message):
Curl not found on this system. To use the built-in version set
CPR_USE_SYSTEM_CURL to OFF.
-- Configuring incomplete, errors occurred!
然后我设置了library/CMakeLists.txt set(CPR_USE_SYSTEM_CURL OFF)
因为它找不到curl.
可能问题就出在这了
系统是有 curl
➜ ~ which curl
/usr/bin/curl
➜ ~ where curl
/usr/bin/curl
问题找到了是没有
-- Found CURL: /opt/devkitpro/portlibs/switch/lib/libcurl.a (found version "7.69.1") found components: HTTP
难受。
感谢提醒,缺少curl应该是readme里面我忘记写了。还可能有其他忘记写的依赖也欢迎提供出来。
但是这个应该不会导致最开始说的那个报错。cmake有时候就是会因为缓存出现问题,如果之后还有类似的情况或者其他问题,也可以删掉构建目录重新构建。
devkitpro 底层的问题解决了,现在使用最新版编译是没有问题的了。
但是 devkitpro 最新的SDL2音频支持还存在一些问题,在我修改好之前可以先安装老版本:
# 更新devkitpro
sudo dkp-pacman -Syu
# 安装老版本 SDL2
sudo dkp-pacman -U https://github.com/xfangfang/wiliwili/releases/download/v0.1.0/switch-sdl2-2.0.14-1-any.pkg.tar.zst
最后一次更新: 目前按照项目readme说明构建即可。
make: /usr/bin/cmake: No such file or directory
这个问题出现的原因是,构建目录最开始由 docker 镜像生成,后来又使用本地环境构建,这样使用是错误的。
cmake不能安装在 /usr/bin/cmake ,怎么弄呀?