go - #cgo LDFLAGS 中的标志无效
问题描述
我在 ubuntu 18 上使用 go version go version "go1.14.4 linux/amd64"。这段代码不是我写的,但我相信它适用于比我当前版本早几年的 go 版本。当我尝试构建时,我收到此错误。有什么想法我需要做些什么来解决?
go build *.go
go build command-line-arguments: invalid flag in #cgo LDFLAGS: - I/home/me/myProject/lib
以下是我认为我的 go 文件的相关部分:
package main
/*
#cgo LDFLAGS: -v -I${SRCDIR}/lib -lplaintext
#cgo CFLAGS: -I${SRCDIR}/include -I${SRCDIR}/lib
#include <stdlib.h>
#include "plaintext.h"
*/
import "C"
import (
"bufio"
"bytes"
"context"
"crypto/md5"
"flag"
"fmt"
"io"
"io/ioutil"
"log"
"log/syslog"
"net"
"net/http"
"os"
"os/signal"
"runtime"
"strings"
"strconv"
"sync"
"syscall"
"time"
"unsafe"
)
解决方案
我相信您正在尝试为您的库指定搜索路径,因此您应该使用-L
. -I
用于编译器包含目录。
package main /*
#cgo LDFLAGS: -v -L${SRCDIR}/lib -lplaintext
#cgo CFLAGS: -I${SRCDIR}/include -I${SRCDIR}/lib
推荐阅读
- gambas - 类容器-gambas 错误中的未知符号“textbox1”
- java - 是否有非异常方式访问 getDeclaredMethod?
- python - Python 默认字典参考
- android - Glide:调整 ImageView 的大小以适应滑动中的图像,而不是相反
- amazon-web-services - 如何从 SNS 订阅中提取令牌并在确认订阅方法中使用它?
- wordpress - 自定义分类帖子名称未检索
- hyperledger-fabric - Hyperledger Fabric:/etc/hyperledger/fabric-ca-server/ca-chain.pem 中不存在链文件
- audio - 使用什么 ffmpeg 命令将无符号整数列表转换为音频文件?
- java - 如何在 Java 中使用 ComboBox 数据填充 ArrayList
- javascript - 发现奇怪的用户代理