ืื ื’ืœื™ืชืฆืจืคืชื™ืชืกืคืจื“ื™

ืกืžืœ OnWorks

bear - ืžืงื•ื•ืŸ ื‘ืขื ืŸ

ื”ืคืขืœ ืืช bear ื‘ืกืคืง ืื™ืจื•ื— ื—ื™ื ื ืฉืœ OnWorks ืขืœ ืื•ื‘ื•ื ื˜ื• ืžืงื•ื•ืŸ, ืคื“ื•ืจื” ืžืงื•ื•ืŸ, ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ Windows ืื• ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ MAC OS

ื–ื”ื• ื“ื•ื‘ ื”ืคืงื•ื“ื” ืฉื ื™ืชืŸ ืœื”ืคืขื™ืœ ื‘ืกืคืง ื”ืื™ืจื•ื— ื”ื—ื™ื ืžื™ ืฉืœ OnWorks ื‘ืืžืฆืขื•ืช ืื—ืช ืžืชื—ื ื•ืช ื”ืขื‘ื•ื“ื” ื”ืžืงื•ื•ื ื•ืช ื”ืžืจื•ื‘ื•ืช ืฉืœื ื•, ื›ื’ื•ืŸ Ubuntu Online, Fedora Online, ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ Windows ืื• ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ MAC OS

ืชึธื›ึฐื ึดื™ืช:

ืฉืึตื


ื“ื•ื‘ - ืœื‘ื ื•ืช ืื•ื–ืŸ

ืชึทืงืฆึดื™ืจ


ื“ื•ื‘ [ืืคืฉืจื•ื™ื•ืช] [ืœึดื‘ื ื•ึนืช ืคืงื•ื“ื•ืช]

ืชื™ืื•ืจ


Bear ื”ื•ื ื›ืœื™ ืœื™ืฆื•ืจ ืžืกื“ ื ืชื•ื ื™ื ืงื•ืžืคื™ืœืฆื™ื” ืขื‘ื•ืจ ื›ืœื™ ืงืœื ื’.

ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ ื”ื™ื“ื•ืจ JSON (http://clang.llvm.org/docs/JSONCompilationDatabase.html) ื”ื•ื
ืžืฉืžืฉ ื‘ืคืจื•ื™ืงื˜ clang ื›ื“ื™ ืœืกืคืง ืžื™ื“ืข ื›ื™ืฆื“ ืขื•ื‘ื“ืช ื™ื—ื™ื“ืช ืงื•ืžืคื™ืœืฆื™ื” ืื—ืช.
ื›ืืฉืจ ื–ื” ื–ืžื™ืŸ ืื– ืงืœ ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ืงื•ืžืคื™ืœืฆื™ื” ืขื ืชื•ื›ื ื™ื•ืช ืฉื•ื ื•ืช.

Bear ืžื‘ืฆืข ืืช ืคืงื•ื“ืช ื”-build ื”ืžืงื•ืจื™ืช ื•ืžื™ื™ืจื˜ ืืช ืงืจื™ืื•ืช ื”-Exec. ืœื”ืฉื™ื’ ืืช ื”ื“ื•ื‘ ื”ื–ื”
ืžืฉืชืžืฉ ื‘ืžื ื’ื ื•ื ื™ LD_PRELOAD ืื• DYLD_INSERT_LIBRARIES ื”ืžืกื•ืคืงื™ื ืขืœ ื™ื“ื™ ื”ืžืงืฉืจ ื”ื“ื™ื ืžื™.
ื™ืฉ ืกืคืจื™ื™ื” ืฉืžื’ื“ื™ืจื” ืืช ืฉื™ื˜ื•ืช ื”-Exec ื•ืžืฉืžืฉื•ืช ื‘ื›ืœ ืชื”ืœื™ื›ื™ ื™ืœื“ ืฉืœ
ืคืงื•ื“ื” ืœื‘ื ื•ืช. ืงื•ื‘ืฅ ื”ื”ืคืขืœื” ืขืฆืžื• ืžื’ื“ื™ืจ ืืช ื”ืกื‘ื™ื‘ื” ืœืชื”ืœื™ื›ื™ ื™ืœื“ ื•
ื›ื•ืชื‘ ืืช ืงื•ื‘ืฅ ื”ืคืœื˜.

ืืคืฉืจื•ื™ื•ืช


-o ืชืคื•ืงื”, --cdb ืชืคื•ืงื”
ืฆื™ื™ืŸ ืงื•ื‘ืฅ ืคืœื˜. ืขืจืš ื‘ืจื™ืจืช ืžื—ื“ืœ ืžืกื•ืคืง.

-ื, --ืœึฐืฆึทืจึตืฃ
ื”ืฉืชืžืฉ ื‘ืงื•ื‘ืฅ ื”ืคืœื˜ ืฉื ื•ืฆืจ ื‘ืขื‘ืจ ื•ืฆืจืฃ ืืœื™ื• ืืช ื”ืขืจื›ื™ื ื”ื—ื“ืฉื™ื. ื‘ื“ืจืš ื–ื•
ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืืช bear ื‘ืจืฆื™ืคื•ืช ื‘ืžื”ืœืš ื”ืขื‘ื•ื“ื”, ื•ื–ื” ืฉื•ืžืจ ืขืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ ื”ื”ื™ื“ื•ืจ
ืขื“ ื”ื™ื•ื. ืžื—ื™ืงื” ื•ื”ื•ืกืคื” ืฉืœ ืงื‘ืฆื™ื ื ื—ืฉื‘ื•ืช ืฉื ื™ื”ื. ืื‘ืœ ื‘ื ื” ืฉื™ื ื•ื™ ืชื”ืœื™ืš
(ืฉื™ื ื•ื™ ื“ื’ืœื™ ืžื”ื“ืจ) ื™ื’ืจื•ื ืœืขืจื›ื™ื ื›ืคื•ืœื™ื.

-ื‘, --ืžึดืœื•ึผืœึดื™
ื”ืคื•ืš ืืช ื”ื“ื•ื‘ ืœื™ื•ืชืจ ืžื™ืœื•ืœื™.

-l ืกืคืจื™ื”
ืฆื™ื™ืŸ ืืช ืžื™ืงื•ื ื”ืกืคืจื™ื™ื” ืฉื ื˜ืขืŸ ืžืจืืฉ. ืขืจืš ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืžืกื•ืคืง. (ืืคืฉืจื•ืช ื–ื•
ื‘ืขื™ืงืจ ืœืžื˜ืจื•ืช ืคื™ืชื•ื—.)

-n ื”ืฉื‘ืช ืžืกื ืŸ. ื”ืคืœื˜ ื”ื•ื ื’ื ื JSON ืงื•ื‘ืฅ ืžืขื•ืฆื‘. ืื‘ืœ ื”ืชื•ืฆืื” ื”ื™ื ืœื ื
ืžืกื“ ื ืชื•ื ื™ื ื”ื™ื“ื•ืจ. ื”ื•ื ืžื›ื™ืœ ืืช ื›ืœ ื”ืžื™ื“ืข ื”ื–ืžื™ืŸ ืฉืœ ืฉื™ื—ื•ืช ื”ื”ื ื”ืœื”.
(ืืคืฉืจื•ืช ื–ื• ื‘ืขื™ืงืจ ืœืžื˜ืจื•ืช ืคื™ืชื•ื—.)

ืชืคื•ืงื”


ื™ืฉื ืŸ ืฉืชื™ ื’ืจืกืื•ืช ืฉืœ ืคื•ืจืžื˜ื™ ืคืœื˜. ืื—ืช ืžื”ืŸ ืžื•ื’ื“ืจืช ืขืœ ื™ื“ื™ ื”-clang tooling. ื–ื” ื”ื•ืœืš
ื›ื›ื”:

[
{ "directory": "/home/user/llvm/build",
"command": "clang++ -Irelative -c -o file.o file.cc",
"file": "file.cc" },
...
]

ื›ื“ื™ ืœื”ืฉื™ื’ ืืช ื”ื“ื•ื‘ ื”ื–ื” ืฆืจื™ืš ืœื”ืคืขื™ืœ ืงืฆืช ืกื™ื ื•ืŸ ื•ืขื™ืฆื•ื‘. ื‘ื ื” ื›ืœื™ื ืจื‘ื™ื ืžื”ื
ืคืงื•ื“ื•ืช ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ื‘ื ื™ื™ื”. ื“ื•ื‘ ืฆืจื™ืš ืœืžืฆื•ื ื–ื” ื”ื™ื” ืงืจื™ืืช ืžื”ื“ืจ, ื•ืžื”
ื”ื™ื” ืงื•ื‘ืฅ ื”ืžืงื•ืจ? ืคื•ืจืžื˜ ื”ืคืœื˜ ื”ืื—ืจ ื ื•ืฆืจ ืขืœ ื™ื“ื™ ื”ื“ื’ืœ -n. (ืคืœื˜ ื–ื” ื”ื•ื
ืœื ืจืฉืžื™, ื”ื•ื ืžืฉืžืฉ ืœื ื™ืคื•ื™ ื‘ืื’ื™ื ื‘ื“ื•ื‘ ืขืฆืžื•.)

ื™ึฐืฆึดื™ืึธื” ืกื˜ึธื˜ื•ึผืก


ืกื˜ื˜ื•ืก ื™ืฆื™ืื” ื“ื•ื‘ ื”ื•ื ืžืฆื‘ ื”ื™ืฆื™ืื” ืฉืœ ืคืงื•ื“ืช ื”-build. ืืœื ื›ืืฉืจ ื“ื•ื‘ ืžืชืจืกืง, ืื–
ื”ื•ื ืžื•ื’ื“ืจ ืœืœื ืืคืก.

ื”ืกื‘ื™ื‘ื”


BEAR_OUTPUT
ื”ืžืงื•ื ืฉืœ ื”ืงื‘ืฆื™ื ื”ื–ืžื ื™ื™ื ืฉื‘ื”ื ื”ืœืงื•ื— ื™ื“ื•ื•ื— ืขืœ ืฉื™ื—ื•ืช ืžื ื”ืœ. ืขืจืš ืฉื ืงื‘ืข ืขืœ ื™ื“ื™
bear, ืขื•ืงืฃ ืืช ื”ืขืจืš ื”ืงื•ื“ื ืขื‘ื•ืจ ืชื”ืœื™ื›ื™ ื™ืœื“.

LD_PRELOAD
ื‘ืฉื™ืžื•ืฉ ืขืœ ื™ื“ื™ ื”ืžื˜ืขืŸ ื”ื“ื™ื ืžื™ ื‘-Linux, FreeBSD ื•ืžืขืจื›ื•ืช ื”ืคืขืœื” UNIX ืื—ืจื•ืช. ืขืจืš ืฉื ืงื‘ืข ืขืœ ื™ื“ื™ ื“ื•ื‘,
ืขื•ืงืฃ ืขืจืš ืงื•ื“ื ืขื‘ื•ืจ ืชื”ืœื™ื›ื™ ืฆืืฆื.

DYLD_INSERT_LIBRARIES
ื‘ืฉื™ืžื•ืฉ ืขืœ ื™ื“ื™ ื”ืžื˜ืขืŸ ื”ื“ื™ื ืžื™ ื‘-OS X. ืขืจืš ืฉื ืงื‘ืข ืขืœ ื™ื“ื™ ื“ื•ื‘, ืขื•ืงืฃ ืืช ื”ืขืจืš ื”ืงื•ื“ื
ืœืชื”ืœื™ื›ื™ ื™ืœื“.

DYLD_FORCE_FLAT_NAMESPACE
ื‘ืฉื™ืžื•ืฉ ืขืœ ื™ื“ื™ ื”ืžื˜ืขืŸ ื”ื“ื™ื ืžื™ ื‘-OS X. ืขืจืš ืฉื ืงื‘ืข ืขืœ ื™ื“ื™ ื“ื•ื‘, ืขื•ืงืฃ ืืช ื”ืขืจืš ื”ืงื•ื“ื
ืœืชื”ืœื™ื›ื™ ื™ืœื“.

ื”ืฉืชืžืฉ ื‘-bear ื‘ืื™ื ื˜ืจื ื˜ ื‘ืืžืฆืขื•ืช ืฉื™ืจื•ืชื™ onworks.net


ืฉืจืชื™ื ื•ืชื—ื ื•ืช ืขื‘ื•ื“ื” ื‘ื—ื™ื ื

ื”ื•ืจื“ ืืคืœื™ืงืฆื™ื•ืช Windows & Linux

ืคืงื•ื“ื•ืช ืœื™ื ื•ืงืก

Ad