我目前正在尝试编译一个小型C程序,其中包括zmq
#include <zmq.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
int main (void)
{
// Socket to talk to clients
void *context = zmq_ctx_new ();
void *responder = zmq_socket (context, ZMQ_REP);
int rc = zmq_bind (responder, "tcp://*:5555");
assert (rc == 0);
while (1) {
char buffer [10];
zmq_recv (responder, buffer, 10, 0);
printf ("Received Hello\n");
sleep (1); // Do some 'work'
zmq_send (responder, "World", 5, 0);
}
return 0;
} 我所使用的系统是arm64达尔文和编译器:
Apple clang version 13.0.0 (clang-1300.0.29.30)
Target: arm64-apple-darwin21.2.0使用以下命令:
clang --target=arm64 -I/usr/local/include server.c其中产出:
/usr/local/include/zmq.h:56:10: fatal error: 'errno.h' file not found
我现在已经有4个小时的时间来解决这个问题,我已经尝试了以下几点:
从source
添加stdlibc/c++
ls /usr/local/include
czmq.h zdir_patch.h zmq.h
czmq_library.h zfile.h zmq_utils.h
czmq_prelude.h zframe.h zmsg.h
node zgossip.h zosc.h
zactor.h zhash.h zpoller.h
zargs.h zhashx.h zproc.h
zarmour.h zhttp_client.h zproxy.h
zauth.h zhttp_request.h zrex.h
zbeacon.h zhttp_response.h zsock.h
zcert.h zhttp_server.h zstr.h
zcertstore.h zhttp_server_options.h zsys.h
zchunk.h ziflist.h ztimerset.h
zclock.h zlist.h ztrie.h
zconfig.h zlistx.h zuuid.h
zdigest.h zloop.h
zdir.h zmonitor.h我很确定这是愚蠢的,很容易在我的网站上丢失,但由于我对c++和c语言完全陌生,而且来自其他语言,我无法理解它。我想我只是需要一个合适的搜索词。
如果有人有一个解决方案,这是真正值得赞赏的,但SearchTerms和参考资料,以获得更多的了解周围的主题也是受欢迎的。
发布于 2022-01-12 14:06:00
在macOS的最新版本中,头被隐藏在视线之外,而不是像在任何文明系统中那样被放置在/usr/include中。您可能需要设置:
export CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include或者:
PartA="/Applications/Xcode.app/Contents/Developer/Platforms/"
PartB="MacOSX.platform/Developer/SDKs/MacOSX.sdk"
export CPATH="$PartA/$PartB/usr/include"为了让编译器找到标题,我在我的Mac上运行新版本的macOS的Mac上构建了GCC的自建版本(现在是相当古老的版本)。唯一的优点是目录名中没有空格。
设置CPATH可能就足够了。如果不是,如果它被设置为当前目录,则添加:
… -I "$CPATH" …到编译器命令行可以解决这个问题。我不需要那样做。
我有这样的剧本:
#!/bin/sh
#
# @(#)$Id: gcc-env.sh,v 1.2 2021/11/24 03:02:03 jleffler Exp $
#
# Set GCC environment for macOS Catalina 10.15 (and maybe beyond)
MACOSX_SDK="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
export LIBRARY_PATH="$MACOSX_SDK/usr/lib"
export CPATH="$MACOSX_SDK/usr/include"
export MANPATH="$(clnpath $MANPATH:$MACOSX_SDK/usr/share/man)"我使用. gcc-env来设置环境。我自己建的GCC编译器就能正常工作。
话虽如此,开箱即用的/usr/bin/gcc和/usr/bin/clang等Xcode安装“自动”工作。但是,在安装Xcode之后,需要运行GUI (至少是简短的)。它应该提供安装一些额外的东西-让它做额外的安装。
当我为我的特定命令运行带有-v选项的命令时,我得到了输出:
$ clang -v -I/Users/jonathanleffler/inc -g -O3 -std=c11 -pedantic -Wall \
> -Wextra -Werror -Wshadow -Wmissing-prototypes -Wpointer-arith -Wold-style-definition \
> -Wcast-qual -Wstrict-prototypes -DHAVE_MEMMEM -DHAVE_STRNDUP -DHAVE_STRNLEN \
> -DHAVE_GETDELIM -o fl fl.c -L/Users/jonathanleffler/lib/64 -ljl
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.15.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -disable-free -disable-llvm-verifier -discard-value-names -main-file-name fl.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=10.15 -target-cpu penryn -dwarf-column-info -debug-info-kind=standalone -dwarf-version=4 -debugger-tuning=lldb -ggnu-pubnames -target-linker-version 530 -v -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -I /Users/jonathanleffler/inc -D HAVE_MEMMEM -D HAVE_STRNDUP -D HAVE_STRNLEN -D HAVE_GETDELIM -I/usr/local/include -O3 -Wall -Wextra -Werror -Wshadow -Wmissing-prototypes -Wpointer-arith -Wold-style-definition -Wcast-qual -Wstrict-prototypes -Wno-framework-include-private-from-public -Wno-atimport-in-framework-header -Wno-extra-semi-stmt -Wno-quoted-include-in-framework-header -pedantic -std=c11 -fdebug-compilation-dir /Users/jonathanleffler/src/cmd -ferror-limit 19 -fmessage-length 100 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fobjc-runtime=macosx-10.15.0 -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o /var/folders/vn/wv38v30s4hz3yvbkdtbn049c0000gn/T/fl-e87f7e.o -x c fl.c
clang -cc1 version 11.0.0 (clang-1100.0.33.17) default target x86_64-apple-darwin19.6.0
ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/local/include"
ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
/Users/jonathanleffler/inc
/usr/local/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)
End of search list.
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -macosx_version_min 10.15.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -o fl -L/Users/jonathanleffler/lib/64 /var/folders/vn/wv38v30s4hz3yvbkdtbn049c0000gn/T/fl-e87f7e.o -ljl -L/usr/local/lib -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/lib/darwin/libclang_rt.osx.a
$另请参阅:
https://stackoverflow.com/questions/70681216
复制相似问题