【问题标题】:invalid flag in #cgo LDFLAGS#cgo LDFLAGS 中的标志无效
【发布时间】:2020-06-25 16:53:46
【问题描述】:

我在 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"

)

【问题讨论】:

    标签: go cgo


    【解决方案1】:

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

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

    【讨论】:

    • 成功了——谢谢!这段代码不是我写的,我认为它一定是在过去编译的。但是,随着您的更改,现在将创建二进制文件。非常感谢!
    猜你喜欢
    • 2018-08-10
    • 2022-08-22
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    相关资源
    最近更新 更多