【问题标题】:Why this .c file just have one line "../xx/xx.c"?为什么这个 .c 文件只有一行“../xx/xx.c”?
【发布时间】:2019-12-31 04:30:06
【问题描述】:

出于某种原因,我想构建 mesa3d 源代码。我遵循https://mesa3d.org/install.html 上的指南,构建环境是fedora31 和gcc9.2,但是当我尝试使用运行ninja install 构建代码时出现一些构建错误。

失败:src/mesa/drivers/dri/r200/58cd8d4@@r200@sta/radeon_buffer_objects.c.o cc -Isrc/mesa/drivers/dri/r200/58cd8d4@@r200@sta -Isrc/mesa/drivers/dri/r200 -I../src/mesa/drivers/dri/r200 -Iinclude -I../include -Isrc -I../src -Isrc/mapi -I../src/mapi -Isrc/mesa -I../src/mesa -I../src/gallium/include -Isrc/gallium/auxiliary -I ../src/gallium/auxiliary -Isrc/mesa/drivers/dri/common -I../src/mesa/drivers/dri/common -Isrc/util -I../src/util -I../src /mesa/drivers/dri/r200/server -Isrc/util/xmlpool -I/usr/include/libdrm -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c99 -O2 -g -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS '-DPACKAGE_VERSION="20.0.0-devel"' '-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/issues"' -DUSE_ELF_TLS -DHAVE_ST_VDPAU -DENABLE_ST_OMX_BELLAGIO=0 -DENABLE_ST =0 -DHAVE_X11_PLATFORM -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_DRM -DHAVE_DRM_PLATFORM -DHAVE_SURFACELESS_PLATFORM -DENABLE_SHADER_CACHE -DHAVE___BUILTIN_BSWAP32 -DHAVE___BUILTIN_BSWAP64 -DHAVE_ __BUILTIN_CLZ -DHAVE ___ BUILTIN_CLZLL -DHAVE ___ BUILTIN_CTZ -DHAVE ___ BUILTIN_EXPECT -DHAVE ___ BUILTIN_FFS -DHAVE ___ BUILTIN_FFSLL -DHAVE ___ BUILTIN_POPCOUNT -DHAVE ___ BUILTIN_POPCOUNTLL -DHAVE ___ BUILTIN_UNREACHABLE -DHAVE_FUNC_ATTRIBUTE_CONST -DHAVE_FUNC_ATTRIBUTE_FLATTEN -DHAVE_FUNC_ATTRIBUTE_MALLOC -DHAVE_FUNC_ATTRIBUTE_PURE -DHAVE_FUNC_ATTRIBUTE_UNUSED -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT -DHAVE_FUNC_ATTRIBUTE_WEAK -DHAVE_FUNC_ATTRIBUTE_FORMAT -DHAVE_FUNC_ATTRIBUTE_PACKED -DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL -DHAVE_FUNC_ATTRIBUTE_VISIBILITY -DHAVE_FUNC_ATTRIBUTE_ALIAS -DHAVE_FUNC_ATTRIBUTE_NORETURN -DHAVE_UINT128 -D_GNU_SOURCE -DUSE_SSE41 - DUSE_GCC_ATOMIC_BUILTINS -DUSE_X86_64_ASM -DMAJOR_IN_SYSMACROS -DHAVE_SYS_SYSCTL_H -DHAVE_LINUX_FUTEX_H -DHAVE_ENDIAN_H -DHAVE_DLFCN_H -DHAVE_EXECINFO_H -DHAVE_SYS_SHM_H -DHAVE_CET_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_TIMESPEC_GET -DHAVE_MEMFD_CREATE -DHAVE_RANDOM_R -DHAVE_FLOCK -DHAVE_STRTOK_R -DHAVE_PROGRAM_INVOCATION_NAME -DHAVE_POSIX_MEMALIGN -DHAVE_STRTOD_L -DHAVE_DLADDR -DHAVE_DL_ITERATE_PHDR -DHAVE_ZLIB -DHAVE_PTHREAD -DHAVE_PTHREAD_SETAFFINITY -DHAVE_LIBDRM -DLLVM_AVAILABLE '-DMESA_LLVM_VERSION_STRING = “9.0.0”' -DHAVE_VALGRIND -DHAVE_WAYLAND_PLATFORM -DWL_HIDE_DEPRECATED -DHAVE_DRI3 -DHAVE_DRI3_MODIFIERS -Werror =隐函数声明-Werror =丢失的原型-Werror=return-type -Werror=empty-body -Werror=incompatible-pointer-types -Wno-missing-field-initializers -Wno-format-truncation -fno-math-errno -fno-trapping-math -Werror=format -Wformat-security -fPIC -fvisibility=hidden -DRADEON_R200 -MD -MQ 'src/mesa/drivers/dri/r200/58cd8d4@@r200@sta/radeon_buffer_objects.co' -MF 'src/mesa/drivers/dri/r200 /58cd8d4@@r200@sta/radeon_buffer_objects.cod' -o 'src/mesa/drivers/dri/r200/58cd8d4@@r200@sta/radeon_buffer_objects.co' -c ../src/mesa/drivers/dri/r200 /radeon_buffer_objects.c ../src/mesa/drivers/dri/r200/radeon_buffer_objects.c:1:1: 错误:预期标识符或'('在'.'标记之前

1 | ../radeon/radeon_buffer_objects.c
  | ^

然后我检查了 radeon_buffer_objects.c,这个文件只有一个文件路径。

../radeon/radeon_buffer_objects.c

我对 gcc 和 clang 不是很熟悉。那什么意识?我该如何解决这个构建错误?

【问题讨论】:

  • 我在 Windows 上使用 WSL,当使用 CRLF 而不是 LF 时,在不同的库中得到了同样的错误。也许这会有所帮助。
  • 这有点过时了,但这看起来就像你 git clone 一个不支持符号链接的平台上的存储库(例如 windows)
  • @AnthonySottile 正是我的想法。无论如何,几乎可以肯定它是一个符号链接。
  • @AnthonySottile 谢谢!我认为这是根本原因。实际上,我已经将 repo 克隆到 windows 并更新到我自己的 git 服务器,因为发生了一些有线网络问题。

标签: c++ c mesa


【解决方案1】:

正如 AnthonySottile 的评论所说,这个错误是关于符号链接支持的。我之前已经将此 repo 克隆到 windows 并上传到我自己的 git 服务器。当我尝试从我的 git 构建源代码时发生错误。

我尝试从 mesa3d.org 克隆 repo,问题已解决。

谢谢你们的帮助,伙计们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多