首页 > 解决方案 > #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"

)

标签: gocgo

解决方案


我相信您正在尝试为您的库指定搜索路径,因此您应该使用-L. -I用于编译器包含目录。

package main /*
#cgo LDFLAGS: -v -L${SRCDIR}/lib -lplaintext
#cgo CFLAGS: -I${SRCDIR}/include -I${SRCDIR}/lib

推荐阅读