‘strcmp’未在此范围内声明
我正在使用此教程构建 ios 工具链。当我运行命令 make ENABLE_OPTIMIZED=1 时,我得到此输出。
llvm[0]: Reconfiguring with /home/connor/llvm-svn/configure
config.status: creating Makefile.config
config.status: creating llvm.spec
config.status: creating docs/doxygen.cfg
config.status: creating tools/llvm-config/llvm-config.in
config.status: creating include/llvm/Config/config.h
config.status: creating include/llvm/Support/DataTypes.h
config.status: include/llvm/Support/DataTypes.h is unchanged
config.status: creating include/llvm/ADT/hash_map
config.status: include/llvm/ADT/hash_map is unchanged
config.status: creating include/llvm/ADT/hash_set
config.status: include/llvm/ADT/hash_set is unchanged
config.status: creating include/llvm/ADT/iterator
config.status: include/llvm/ADT/iterator is unchanged
config.status: executing setup commands
config.status: executing Makefile commands
config.status: executing Makefile.common commands
config.status: executing examples/Makefile commands
config.status: executing lib/Makefile commands
config.status: executing runtime/Makefile commands
config.status: executing test/Makefile commands
config.status: executing test/Makefile.tests commands
config.status: executing tools/Makefile commands
config.status: executing utils/Makefile commands
config.status: executing projects/Makefile commands
config.status: executing bindings/Makefile commands
config.status: executing bindings/ocaml/Makefile.ocaml commands
make[1]: Entering directory `/home/connor/llvm-svn/lib/System'
llvm[1]: Compiling Alarm.cpp for Release build
llvm[1]: Compiling Disassembler.cpp for Release build
Disassembler.cpp: In function ‘std::string llvm::sys::disassembleBuffer(uint8_t*, size_t, uint64_t)’:
Disassembler.cpp:44:12: warning: variable ‘bits’ set but not used [-Wunused-but-set-variable]
llvm[1]: Compiling DynamicLibrary.cpp for Release build
DynamicLibrary.cpp: In static member function ‘static void* llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(const char*)’:
DynamicLibrary.cpp:178:5: error: ‘strcmp’ was not declared in this scope
DynamicLibrary.cpp:178:5: error: ‘stderr’ was not declared in this scope
DynamicLibrary.cpp:179:5: error: ‘strcmp’ was not declared in this scope
DynamicLibrary.cpp:179:5: error: ‘stdout’ was not declared in this scope
DynamicLibrary.cpp:180:5: error: ‘strcmp’ was not declared in this scope
DynamicLibrary.cpp:180:5: error: ‘stdin’ was not declared in this scope
make[1]: *** [/home/connor/llvm-svn/lib/System/Release/DynamicLibrary.o] Error 1
make[1]: Leaving directory `/home/connor/llvm-svn/lib/System'
make: *** [all] Error 1
我不知道该怎么做,而且我的谷歌搜索也没有多大帮助。
I'm working on building the ios toolchain with this tutorial. When I run the command make ENABLE_OPTIMIZED=1 I get this output.
llvm[0]: Reconfiguring with /home/connor/llvm-svn/configure
config.status: creating Makefile.config
config.status: creating llvm.spec
config.status: creating docs/doxygen.cfg
config.status: creating tools/llvm-config/llvm-config.in
config.status: creating include/llvm/Config/config.h
config.status: creating include/llvm/Support/DataTypes.h
config.status: include/llvm/Support/DataTypes.h is unchanged
config.status: creating include/llvm/ADT/hash_map
config.status: include/llvm/ADT/hash_map is unchanged
config.status: creating include/llvm/ADT/hash_set
config.status: include/llvm/ADT/hash_set is unchanged
config.status: creating include/llvm/ADT/iterator
config.status: include/llvm/ADT/iterator is unchanged
config.status: executing setup commands
config.status: executing Makefile commands
config.status: executing Makefile.common commands
config.status: executing examples/Makefile commands
config.status: executing lib/Makefile commands
config.status: executing runtime/Makefile commands
config.status: executing test/Makefile commands
config.status: executing test/Makefile.tests commands
config.status: executing tools/Makefile commands
config.status: executing utils/Makefile commands
config.status: executing projects/Makefile commands
config.status: executing bindings/Makefile commands
config.status: executing bindings/ocaml/Makefile.ocaml commands
make[1]: Entering directory `/home/connor/llvm-svn/lib/System'
llvm[1]: Compiling Alarm.cpp for Release build
llvm[1]: Compiling Disassembler.cpp for Release build
Disassembler.cpp: In function ‘std::string llvm::sys::disassembleBuffer(uint8_t*, size_t, uint64_t)’:
Disassembler.cpp:44:12: warning: variable ‘bits’ set but not used [-Wunused-but-set-variable]
llvm[1]: Compiling DynamicLibrary.cpp for Release build
DynamicLibrary.cpp: In static member function ‘static void* llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(const char*)’:
DynamicLibrary.cpp:178:5: error: ‘strcmp’ was not declared in this scope
DynamicLibrary.cpp:178:5: error: ‘stderr’ was not declared in this scope
DynamicLibrary.cpp:179:5: error: ‘strcmp’ was not declared in this scope
DynamicLibrary.cpp:179:5: error: ‘stdout’ was not declared in this scope
DynamicLibrary.cpp:180:5: error: ‘strcmp’ was not declared in this scope
DynamicLibrary.cpp:180:5: error: ‘stdin’ was not declared in this scope
make[1]: *** [/home/connor/llvm-svn/lib/System/Release/DynamicLibrary.o] Error 1
make[1]: Leaving directory `/home/connor/llvm-svn/lib/System'
make: *** [all] Error 1
I'm not sure what to make of this and my googling hasn't helped very much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
strcmp 函数是在 string.h 中声明的,尝试放入
DynamicLibrary.cpp 中,而 stderr 是在 stdio.h 中定义的,所以也将其放入
。 我时不时地发现开源代码也缺少头文件。
更新:
如果您有不同的名称,您可以搜索包含目录,
在真正的 GNU/Linux bash 中(也应该与 Windows 10 WSL 一起使用)您可以使用它来搜索函数:
这用于变量:
在 Windows 上的 Git Bash 上有 /include 和
/mingw64/include
目录,但在我的安装中只有 ImageMagick 头文件和/mingw64/include/gnumake.h
strcmp function is declared in string.h try to put
in DynamicLibrary.cpp and stderr is defined in stdio.h so put that too
From time to time I found open source code with missing header files as well.
UPDATE:
If you have different name, you can search include directory,
in real GNU/Linux bash (should work with Windows 10 WSL as well) you can use this to search for function:
and this for variable:
on Git Bash on Windows there is /include and
/mingw64/include
directories but on my installation there were only ImageMagick header files and/mingw64/include/gnumake.h
在 C++ 中编码时也会发生同样的错误。在这种情况下,请包含 cstring 库来解决该错误。
The same error can happen when coding in C++ . In that case include the cstring library to resolve the error.