第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我的 golang 程序有這個錯誤。exec:“lib/synonyms”:文件不存在

為什么我的 golang 程序有這個錯誤。exec:“lib/synonyms”:文件不存在

Go
拉風的咖菲貓 2022-05-10 17:14:34
我是編程新手,我正在嘗試學(xué)習 golang。我正在編寫練習程序,這個程序稱為域查找器,它由子程序組成,其中一個是同義詞。我制作了一個 build.bat 文件,將所有程序連接在一起,并將它們放在 lib 文件夾中。domainfinder main.go 然后執(zhí)行所有程序并在此處一起運行它們是 domainfinder 文件夾中的 main.go 的一部分。如果問題不是很好,我很抱歉我以前從未在這里問過問題。package mainimport(  "log"  "os"  "os/exec")var cmdChain = []*exec.Cmd{  exec.Command("lib/synonyms"),  exec.Command("lib/sprinkle"),  exec.Command("lib/coolify"),  exec.Command("lib/domainify"),  exec.Command("lib/available"),}
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

exec.Command("lib/synonyms")表示lib/synonyms 相對于運行程序的目錄執(zhí)行文件,而不是相對于main.go源。


如果您的項目如下所示:


domainfinder/

  main.go

  lib/

    synonyms

    sprinkle

    coolify

    domainify

    available

該程序僅在從domainfinder/源目錄執(zhí)行時才能工作。在其他任何地方,它將無法找到文件?;蛘吒愕氖牵鼤?zhí)行一些不相關(guān)的同名文件。


相反,您必須確保這些可執(zhí)行文件與您的可執(zhí)行文件一起提供(我不會演示,因為這不是一個好主意)。然后使用os.Executable()查找可執(zhí)行文件的存儲位置并獲取與該文件相關(guān)的文件。


package main

import(

  "os/exec"

  "log"

  "os"

  "path/filepath"

)


func main() {

  ex, err := os.Executable()

  if err != nil {

      panic(err)

  }

  executableDir := filepath.Dir(ex)

  libDir := filepath.Join(executableDir, "lib")


  cmd := exec.Command(filepath.Join(libDir, "synonyms"))

  stdout, err := cmd.Output()

  log.Printf("Command finished with error: %v", err)

  log.Printf(string(stdout))

}

然而,與其調(diào)用可執(zhí)行文件,不如將它們寫成 Go 庫和函數(shù)。這將導(dǎo)致更健壯、更簡單和更易于使用的代碼。如果您必須有其他可執(zhí)行文件,請將它們編寫為庫并提供一個精簡的可執(zhí)行包裝器。


如何編寫 Go 代碼涵蓋了如何構(gòu)建 Go 項目。


查看完整回答
反對 回復(fù) 2022-05-10
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號