Part of my Go program relies on a very large C codebase using import "C"
that takes a few minutes to compile. Is there any way to precompile per-se that C library or create a branch of my Go program that will be precompiled along with the C code so that each time I compile the main program I don't have to wait for the entire C library to re-compile each time?
Precompiling part of Go program that relies on C for speed
378 Views Asked by abagshaw At
1
There are 1 best solutions below
Related Questions in C
- How to map JavaScript code to Google v8?
- Traversing a string using arm assembly inside V8 source
- What is difference between "node --prof" and using node-profiler
- Why does my 8-puzzle solution runs faster when I create an array twice
- is there any workaround for broken v8 date parser?
- does google v8 support the keyword "let"? not in node.js
- Determining cause of deoptimisation
- How do I store a reference to external pointer in a function template in V8?
- C++ null reference in V8 when trying to get Isolate in callback
- How to get the current function's name or linenumbers in V8
Related Questions in GO
- How to map JavaScript code to Google v8?
- Traversing a string using arm assembly inside V8 source
- What is difference between "node --prof" and using node-profiler
- Why does my 8-puzzle solution runs faster when I create an array twice
- is there any workaround for broken v8 date parser?
- does google v8 support the keyword "let"? not in node.js
- Determining cause of deoptimisation
- How do I store a reference to external pointer in a function template in V8?
- C++ null reference in V8 when trying to get Isolate in callback
- How to get the current function's name or linenumbers in V8
Related Questions in CGO
- How to map JavaScript code to Google v8?
- Traversing a string using arm assembly inside V8 source
- What is difference between "node --prof" and using node-profiler
- Why does my 8-puzzle solution runs faster when I create an array twice
- is there any workaround for broken v8 date parser?
- does google v8 support the keyword "let"? not in node.js
- Determining cause of deoptimisation
- How do I store a reference to external pointer in a function template in V8?
- C++ null reference in V8 when trying to get Isolate in callback
- How to get the current function's name or linenumbers in V8
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Instead of importing the entire C source code, you can link it with compiled object files and header files. Refer to https://golang.org/cmd/cgo/ which covers how to use the
LDFLAGS
argument for cgo.There are other documents online which cover how to compile C code into object files (
.a
and.o
files) such as this one. You should also refer to documentation in the library you're using, or its Makefile as it will likely already have instructions to compile it into object files that can be linked.If the library that has
import "C"
, and its source isn't being modified, you can alsogo get
it, (or perhapsgo install
it) which will store its compiled object files in your$GOPATH/pkg
, making compilation of other Go programs that import it faster.