英文:
Go cgo - ignore C source files on windows
问题
我有一个使用一些C代码在Linux上的库。在Windows上,它只是一个虚拟的无操作库,其中的函数什么都不做。
这个库由3个文件组成:lib_linux.go
、lib_win.go
和lib.c
。
但是当我尝试在Windows上编译它时,它会抛出这个错误:C source files not allowed when not using cgo or SWIG: lib.c
。
我该如何告诉Go编译器在Windows上忽略C源文件呢?
英文:
I have a lib, that uses some C on linux. On windows it is just a dummy noop lib with functions that do nothing.
The lib is in 3 files: lib_linux.go
, lib_win.go
and lib.c
But when I try to compile it on windows, it throws this error: C source files not allowed when not using cgo or SWIG: lib.c
How can I tell to the go compiler to ignore the C source files on windows?
答案1
得分: 1
一个类似的问题建议(根据你的情况):
- 将
.c
文件重命名为lib_linux.c
; - 或者在
.c
文件的顶部添加一个构建约束// +build linux
条件(条件编译)。
英文:
A similar issue suggests (when tailored to your case):
> ## workarounds
>
> - Rename the .c
file lib_linux.c;
> - Or add a build constraint // +build linux
condition to the top of the .c
file (conditional compilation).
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论