【发布时间】:2018-10-05 00:33:57
【问题描述】:
我正在从源代码构建多个库,并在最新版本中签出。我确信我已经安装了这些库的所有依赖项。我使用的工具会在其他系统中正确构建库并正确安装它们所需的依赖项。然而,在我当前的构建机器上,我可以配置和编译一堆库,但是当我尝试从源代码编译 libiconv 和 libsodium 时,gcc 会抛出以下神秘错误:
gcc-7: error: 0": No such file or directory
我不是为这个问题寻找直接的解决方案,我只是想找出这个错误的性质,当它出现在成功配置的项目中时。
编辑:正在运行的最后一个块是:
libtool: compile: gcc -m64 -I../lib -I./../lib -I../include -I./../include -I.. -I./.. -I/home/ubuntu/build/monero/contrib/depends/x86_64-linux-gnu/include -pipe -O2 -fvisibility=hidden -DLIBDIR=\"/home/ubuntu/build/monero/contrib/depends/x86_64-linux-gnu/lib\" -DBUILDING_LIBICONV -DBUILDING_DLL -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"/home/ubuntu/build/monero/contrib/depends/x86_64-linux-gnu/lib\" -DNO_XMALLOC -Dset_relocation_prefix=libiconv_set_relocation_prefix -Drelocate=libiconv_relocate -DPACKAGE_NAME=\"libiconv\" -DPACKAGE_TARNAME=\"libiconv\" -DPACKAGE_VERSION=\"0\" "-DPACKAGE_STRING=\"libiconv 0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DINSTALLPREFIX=\"/home/ubuntu/build/monero/contrib/depends/x86_64-linux-gnu\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_DARWIN_C_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D__STDC_WANT_IEC_60559_ATTRIBS_EXT__=1 -D__STDC_WANT_IEC_60559_BFP_EXT__=1 -D__STDC_WANT_IEC_60559_DFP_EXT__=1 -D__STDC_WANT_IEC_60559_FUNCS_EXT__=1 -D__STDC_WANT_IEC_60559_TYPES_EXT__=1 -D__STDC_WANT_LIB_EXT2__=1 -D__STDC_WANT_MATH_SPEC_FUNCS__=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_VISIBILITY=1 -DLIBICONV_PLUG -c ./../lib/iconv.c -fPIC -DPIC -o objects/.libs/iconv.o
让我印象深刻的是 "-DPACKAGE_STRING=\"libiconv 0\"" ,它可能导致字符串被作为单独的参数读取。我不明白为什么这会在某些系统上传递而不是在其他系统上传递。
【问题讨论】:
-
您是在尝试在名称中包含空格字符的目录中构建,还是在父目录的名称中构建?
-
在某处检查 Windows 样式的行尾。在 Windows 上,
\r\n标志着一行的结束;在 Unix/Linux 上,它只是\n,\r可以作为文件名的最后一个字符。错误消息打印\r字符,导致光标移动到行首,并且消息的其余部分被覆盖。尝试gcc ... 2>&1 | cat -A显示错误消息中实际打印的内容。 -
您需要提供更多信息。 GCC 正在尝试编译一个名为
0"的文件。冒险猜测,我会说问题出在您的构建脚本和 libsodium 上。使用bash -x运行您的脚本并发布输出。
标签: linux gcc compiler-errors configure