xfangfang / wiliwili

第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上
https://xfangfang.github.io/wiliwili
GNU General Public License v3.0
3.18k stars 146 forks source link

一个环境问题 #144

Closed dong2dong3 closed 1 year ago

dong2dong3 commented 1 year ago

cmake不能安装在 /usr/bin/cmake ,怎么弄呀?

➜  wiliwili git:(yoga) ✗ make -C cmake-build-switch wiliwili.nro -j$(nproc)

make: /usr/bin/cmake: No such file or directory
make: *** [cmake_check_build_system] Error 1
xfangfang commented 1 year ago

@dong2dong3
首先你需要说清目前想要编译到哪个平台(我猜应该是switch)

然后你可以把构建目录删除,从cmake指令开始记录log。

最后,目前在switch平台推荐使用旧版本的docker镜像构建(按照readme说明执行即可),最新的devkitA64环境貌似存在问题(vsnprintf线程不安全导致播放器蓝屏或闪退),我已经给作者提了 issue 不过还没有收到回复。

dong2dong3 commented 1 year ago

@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里面找. 谢谢

xfangfang commented 1 year ago

我也不了解为什么会报错,这应该是make自己的行为。

我的建议前面也说了:彻底删除构建目录,重新构建,并把log完整地发出来。

或者,直接使用docker构建

dong2dong3 commented 1 year ago
➜  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
dong2dong3 commented 1 year ago

问题找到了是没有

-- Found CURL: /opt/devkitpro/portlibs/switch/lib/libcurl.a (found version "7.69.1") found components: HTTP
image

难受。

xfangfang commented 1 year ago

感谢提醒,缺少curl应该是readme里面我忘记写了。还可能有其他忘记写的依赖也欢迎提供出来。

但是这个应该不会导致最开始说的那个报错。cmake有时候就是会因为缓存出现问题,如果之后还有类似的情况或者其他问题,也可以删掉构建目录重新构建。

xfangfang commented 1 year ago

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
xfangfang commented 1 year ago

最后一次更新: 目前按照项目readme说明构建即可。

make: /usr/bin/cmake: No such file or directory

这个问题出现的原因是,构建目录最开始由 docker 镜像生成,后来又使用本地环境构建,这样使用是错误的。