macOS mojave로gnug++로 컴파일할 수 없습니다
결론
다음 명령을 실행하여
/usr/include
에서 머리글 파일을 확장합니다.open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
컨디션
배경.
맥OS에서 사용하려면simstirng 애플 클래핑으로 컴파일하면 UTF-16/32 지원이 무효가 됩니다.컴파일 대신gnug++를 사용하려고 합니다.
문제.
문제를 이해하기 편리하도록 c++ 소스 코드를 준비하십시오. 눈썹 파일만 포함하면 됩니다.
string.cpp
#include <string>
int main () {}
MacOS 기본 c++ 컴파일러가 컴파일될 수 있는지 확인합니다.c++ string.cpp
이 컴파일러의 실질은 애플clang이다.~ c++ --version
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
홈brew를 사용하여gnug++를 설치합니다.brew install gcc
/usr/local/Cellar/gcc/10.2.0_3
에 설치됩니다.디렉토리는 버전에 따라 다를 수 있습니다.
g++,string을 사용합니다.cpp를 컴파일할 때 다음과 같은 오류가 발생합니다.
~ /usr/local/Cellar/gcc/10.2.0_3/bin/c++-10 string.cpp
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
from /usr/local/Cellar/gcc/10.2.0_3/include/c++/10.2.0/cwchar:44,
from /usr/local/Cellar/gcc/10.2.0_3/include/c++/10.2.0/bits/postypes.h:40,
from /usr/local/Cellar/gcc/10.2.0_3/include/c++/10.2.0/bits/char_traits.h:40,
from /usr/local/Cellar/gcc/10.2.0_3/include/c++/10.2.0/string:40,
from string.cpp:1:
/usr/local/Cellar/gcc/10.2.0_3/lib/gcc/10/gcc/x86_64-apple-darwin18/10.2.0/include-fixed/stdio.h:219:10: fatal error: _ctermid.h: No such file or directory
219 | #include <_ctermid.h>
| ^~~~~~~~~~~~
compilation terminated.
해결책
참조macos - Can't compile C program on a Mac after upgrade to Mojave - Stack Overflow.아직 해결되지 않았기 때문에 소홀히 할 수도 있지만 (실제로 한 번 통과했다) 내용을 읽으면 해결된다.운영체제를 Mojave의 일부 버전으로 업그레이드하면
/usr/include
디렉터리가 사라질 것 같습니다.자신의 기기의 상태를 확인한 결과 아래쪽
/usr/include
이 없기 때문에 이랬을 것이다.~ ls /usr/include
ls: /usr/include: No such file or directory
먼저 GUI로 xcode를 시작하여 소프트웨어 설치를 완료합니다.(안 해도 될지도 모르지만, 했으니까 검증이 안 돼.)
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
를 실행하면/usr/include/가 생성됩니다.~ ls /usr/include
AppleTextureEncoder.h grp.h ranlib.h
AssertMacros.h gssapi/ readline/
Availability.h gssapi.h readpassphrase.h
AvailabilityInternal.h hfs/ regex.h
AvailabilityMacros.h histedit.h removefile.h
Block.h i386/ resolv.h
CommonCrypto/ iconv.h rpc/
ConditionalMacros.h ifaddrs.h rpcsvc/
Darwin.apinotes inttypes.h rune.h
MacTypes.h iso646.h runetype.h
NSSystemDirectories.h kern/ sandbox.h
TargetConditionals.h krb5/ sasl/
Xplugin.h krb5.h sched.h@
__cxxabi_config.h langinfo.h search.h
__wctype.h launch.h secure/
_ctype.h lber.h security/
_locale.h lber_types.h semaphore.h
_regex.h ldap.h servers/
_stdio.h ldap_cdefs.h setjmp.h
_types/ ldap_features.h sgtty.h
_types.h ldap_schema.h signal.h
_wctype.h ldap_utf8.h simd/
_xlocale.h ldif.h slapi-plugin.h
aio.h libc.h spawn.h
aliasdb.h libcharset.h sqlite3.h
alloca.h libexslt/ sqlite3ext.h
apache2/ libgen.h stab.h
apr-1/ libkern/ standards.h
ar.h libproc.h stddef.h
architecture/ libunwind.h stdint.h
arpa/ libxml2/ stdio.h
asl.h libxslt/ stdlib.h
assert.h limits.h strhash.h
atm/ localcharset.h string.h
bank/ locale.h stringlist.h
bitstring.h mach/ strings.h
bootparams.h mach-o/ struct.h
bootstrap.h mach_debug/ sys/
bsm/ machine/ sysdir.h
bzlib.h malloc/ sysexits.h
cache.h math.h syslog.h
cache_callbacks.h membership.h tar.h
checkint.h memory.h tcl.h@
com_err.h menu.h tclDecls.h@
complex.h miscfs/ tclPlatDecls.h@
compression.h module.modulemap tclTomMath.h@
copyfile.h monetary.h tclTomMathDecls.h@
corpses/ monitor.h term.h
cpio.h mpool.h term_entry.h
crt_externs.h nameser.h termcap.h
ctype.h nc_tparm.h termios.h
cups/ ncurses.h@ tgmath.h
curl/ ncurses_dll.h tic.h
curses.h ndbm.h tidy/
cxxabi.h net/ time.h
db.h net-snmp/ timeconv.h
default_pager/ netdb.h tk.h@
device/ netinet/ tkDecls.h@
dirent.h netinet6/ tkIntXlibDecls.h@
disktab.h netkey/ tkMacOSX.h@
dispatch/ nfs/ tkPlatDecls.h@
dlfcn.h nl_types.h ttyent.h
dns.h nlist.h tzfile.h
dns_sd.h notify.h ucontext.h
dns_util.h notify_keys.h ulimit.h
dtrace.h ntsid.h unctrl.h
editline/ objc/ unistd.h
err.h odmodule/ unwind.h
errno.h os/ util.h
eti.h panel.h utime.h
execinfo.h paths.h utmp.h
expat.h pcap/ utmpx.h
expat_external.h pcap-bpf.h uuid/
fcntl.h pcap-namedb.h vfs/
fenv.h pcap.h vis.h
ffi/ pexpert/ voucher/
float.h php/ vproc.h
fmtmsg.h poll.h wchar.h
fnmatch.h printerdb.h wctype.h
form.h printf.h wordexp.h
fsproperties.h profile.h xar/
fstab.h protocols/ xattr_flags.h
fts.h pthread/ xlocale/
ftw.h pthread.h@ xlocale.h
get_compat.h pthread_impl.h@ xpc/
gethostuuid.h pthread_spis.h@ zconf.h
getopt.h pwd.h zlib.h
glob.h python2.7@
재편역.변함없이 오류가 발생하다.~ /usr/local/Cellar/gcc/10.2.0_3/bin/c++-10 string.cpp
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
from /usr/local/Cellar/gcc/10.2.0_3/include/c++/10.2.0/cwchar:44,
from /usr/local/Cellar/gcc/10.2.0_3/include/c++/10.2.0/bits/postypes.h:40,
from /usr/local/Cellar/gcc/10.2.0_3/include/c++/10.2.0/bits/char_traits.h:40,
from /usr/local/Cellar/gcc/10.2.0_3/include/c++/10.2.0/string:40,
from string.cpp:one:
/usr/local/Cellar/gcc/10.2.0_3/lib/gcc/10/gcc/x86_64-apple-darwin18/10.2.0/include-fixed/stdio.h:219:10: fatal error: _ctermid.h: No such file or directory
219 | #include <_ctermid.h>
| ^~~~~~~~~~~~
compilation terminated.
-I
옵션에 지정된 /usr/include
를 컴파일합니다./usr/local/Cellar/gcc/10.2.0_3/bin/c++-10 -I/usr/include string.cpp
성공했어!
Reference
이 문제에 관하여(macOS mojave로gnug++로 컴파일할 수 없습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ledsun/articles/6fa35402de553d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)