忽略Windows上的C源文件

huangapple go评论104阅读模式
英文:

Go cgo - ignore C source files on windows

问题

我有一个使用一些C代码在Linux上的库。在Windows上,它只是一个虚拟的无操作库,其中的函数什么都不做。

这个库由3个文件组成:lib_linux.golib_win.golib.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).

huangapple
  • 本文由 发表于 2022年2月28日 14:17:12
  • 转载请务必保留本文链接:https://go.coder-hub.com/71291234.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定