在Windows Server 2008上构建时,“不是有效的Win32应用程序”

手机号码:

我有以下问题。我有一个为每个OS和ARCH构建的简单Golang应用程序。我所说的操作系统是:

  • Windows(GOOS = windows)
  • OSX(在OSX计算机上构建)

和拱门:

  • 32(GOARCH = amd64)
  • 64(GOARCH = 386)

对于Mac OS X,Windows Server 2008+,一切正常。但是,当我尝试在Windows Server 2008 SP2上运行已编译的应用程序时遇到问题。我收到以下错误:

App.exe is not a valid Win32 application

并尝试从PowerShell运行时:

The specified executable is not a valid application for this OS platform

我的应用程序几乎是1:1,以

如果链接将来无法正常工作,请使用以下代码:

package main

import (
    "fmt"
    "time"

    "github.com/pion/webrtc/v3"
    "github.com/pion/webrtc/v3/examples/internal/signal"
)

func main() {
    // Everything below is the Pion WebRTC API! Thanks for using it ❤️.

    // Prepare the configuration
    config := webrtc.Configuration{
        ICEServers: []webrtc.ICEServer{
            {
                URLs: []string{"stun:stun.l.google.com:19302"},
            },
        },
    }

    // Create a new RTCPeerConnection
    peerConnection, err := webrtc.NewPeerConnection(config)
    if err != nil {
        panic(err)
    }

    // Set the handler for ICE connection state
    // This will notify you when the peer has connected/disconnected
    peerConnection.OnICEConnectionStateChange(func(connectionState webrtc.ICEConnectionState) {
        fmt.Printf("ICE Connection State has changed: %s\n", connectionState.String())
    })

    // Register data channel creation handling
    peerConnection.OnDataChannel(func(d *webrtc.DataChannel) {
        fmt.Printf("New DataChannel %s %d\n", d.Label(), d.ID())

        // Register channel opening handling
        d.OnOpen(func() {
            fmt.Printf("Data channel '%s'-'%d' open. Random messages will now be sent to any connected DataChannels every 5 seconds\n", d.Label(), d.ID())

            for range time.NewTicker(5 * time.Second).C {
                message := signal.RandSeq(15)
                fmt.Printf("Sending '%s'\n", message)

                // Send the message as text
                sendErr := d.SendText(message)
                if sendErr != nil {
                    panic(sendErr)
                }
            }
        })

        // Register text message handling
        d.OnMessage(func(msg webrtc.DataChannelMessage) {
            fmt.Printf("Message from DataChannel '%s': '%s'\n", d.Label(), string(msg.Data))
        })
    })

    // Wait for the offer to be pasted
    offer := webrtc.SessionDescription{}
    signal.Decode(signal.MustReadStdin(), &offer)

    // Set the remote SessionDescription
    err = peerConnection.SetRemoteDescription(offer)
    if err != nil {
        panic(err)
    }

    // Create an answer
    answer, err := peerConnection.CreateAnswer(nil)
    if err != nil {
        panic(err)
    }

    // Create channel that is blocked until ICE Gathering is complete
    gatherComplete := webrtc.GatheringCompletePromise(peerConnection)

    // Sets the LocalDescription, and starts our UDP listeners
    err = peerConnection.SetLocalDescription(answer)
    if err != nil {
        panic(err)
    }

    // Block until ICE Gathering is complete, disabling trickle ICE
    // we do this because we only can exchange one signaling message
    // in a production application you should exchange ICE Candidates via OnICECandidate
    <-gatherComplete

    // Output the answer in base64 so we can paste it in browser
    fmt.Println(signal.Encode(*peerConnection.LocalDescription()))

    // Block forever
    select {}
}

我正在使用GO 1.14并通过以下方式进行构建:

  • go build -ldflags "-s -w" app.go
  • 我也尝试过,go build app.go但是什么没变:(
icza:

我相信这是因为从Go 1.13开始,内部链接的Windows二进制文件指定的Windows版本现在是Windows 7:

内部链接的Windows二进制文件指定的Windows版本现在是Windows 7,而不是NT 4.0。这已经是Go的最低要求版本,但是会影响具有向后兼容模式的系统调用的行为。现在,它们将按照记录的方式运行。外部链接的二进制文件(使用cgo的任何程序)始终指定了更新的Windows版本。

Windows 7具有发行版NT 6.1,Windows Server 2008具有发行版NT 6.0)。因此,仅Windows Server 2008不能满足内置二进制文件所需的最低Windows版本。

如果需要支持Windows Server 2008,请尝试使用Go 1.12进行构建。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

在Windows上使用Gradle Exec任务时Webpack'不是有效的Win32应用程序'

来自分类Dev

Windows上的Python Hadoop流式传输,脚本不是有效的Win32应用程序

来自分类Dev

GAE Go Windows-“无法运行程序”,“不是有效的Win32应用程序”

来自分类Dev

OSError:[WinError 193]%1不是有效的Win32应用程序错误,在Windows上通过Selenium和Python使用GeckoDriver和Firefox

来自分类Dev

Windows Embedded Standard不是有效的Win32 C ++

来自分类Dev

Windows XP上的Inno Setup安装程序显示“无效的Win32应用程序”

来自分类Python

在python中加载DLL时出错,不是有效的Win32应用程序

来自分类Dev

从Windows 10上的Win32 GUI应用程序输出到控制台

来自分类Dev

VS刚刚构建它之后,“ xxx.exe不是有效的Win32应用程序”

来自分类Dev

通用Windows应用程序到Win32应用程序

来自分类Dev

CMake:运行链接命令时出错:%1不是有效的Win32应用程序

来自分类Dev

在Windows 10 VS Windows Server 2019上开发Xamarin移动应用程序之间有什么区别吗?

来自分类Dev

导入skimage不是有效的Win32应用程序python3

来自分类Java

JNI C ++ DLL-'UnsatisfiedLinkError:%1不是有效的Win32应用程序'

来自分类Python

OSError:[WinError 193]%1不是有效的Win32应用程序

来自分类Dev

CreateProcess错误= 193,%1不是有效的Win32应用程序-> [帮助1]

来自分类Dev

Application.exe不是有效的Win32应用程序错误

来自分类Dev

Python:DLL加载失败:%1不是有效的Win32应用程序

来自分类Dev

节点printer.node不是有效的win32应用程序

来自分类Dev

GAMMU-识别:不是有效的win32应用程序

来自分类Dev

WinError 193]%1不是有效的Win32应用程序

来自分类Dev

AWS Windows Server 2008上的Edcast + Icecast

来自分类Dev

Windows Server 2008 R2与.Net Core应用程序共同托管旧版.Net应用程序

来自分类Dev

VLC.DotNet System.ComponentModel.Win32Exception:'%1不是有效的Win32应用程序'

来自分类Dev

在Windows Server上安装Redis

来自分类Dev

Windows Server上的Laravel SSH

来自分类Dev

Windows Server中的Spring Boot应用程序

来自分类Dev

在Windows的Docker中运行普通的Win32应用程序

来自分类Dev

如何在Win32应用程序中检测Windows 10亮/暗模式?

TOP 榜单

  1. 1

    来自Microsoft Office加载项taskpane.js的MySQL驱动程序模块的空引用

  2. 2

    任务':app:minifyReleaseWithR8'.java.lang.NullPointerException的执行失败(无错误消息)

  3. 3

    OpenJDK的和AdoptOpenJDK的区别

  4. 4

    如何解决npm问题?

  5. 5

    GitHub文件夹上有一个白色箭头

  6. 6

    在python中交互式旋转3D图-Matplotlib-Jupyter Notebook

  7. 7

    在熊猫中每隔一列取行平均值(python)

  8. 8

    未定义:grpc.SupportPackageIsVersion7 grpc.ServiceRegistrar

  9. 9

    TypeScript泛型错误:算术运算的左侧必须为“ any”,“ number”,“ bigint”类型

  10. 10

    无法导入大猩猩/mux(github.com/gorilla/[email protected]:在go.mod中明确要求,但在vendor / modules.txt中未标记为明确)

  11. 11

    tensorflow:仅在可用val_acc的情况下可以保存最佳模型,跳过

  12. 12

    使用moment.js获取不同时区的当前时间

  13. 13

    Nuxt.JS:如何在页面中获取路由URL参数

  14. 14

    如何在k8s中连接到我的mysql pod或mysql的节点?

  15. 15

    java.lang.NoClassDefFoundError:无法初始化类org.bytedeco.javacpp.avutil

  16. 16

    重命名由android 10中的应用程序创建的Mediastore的文件。正在使用Android API 30,但在API 29中显示错误

  17. 17

    Golang time.Parse()得到0001-01-01 00:00:00 +0000 UTC

  18. 18

    “无法上传。请重试。” Google Play控制台上的错误

  19. 19

    requestLegacyExternalStorage在Android 11中不起作用-API 30

  20. 20

    TypeScript TS7015:元素隐式地具有“ any”类型,因为索引表达式不是“ number”类型

  21. 21

    如何处理这个git警告?“不建议在不指定如何协调分歧分支的情况下进行拉动”

热门标签

归档