簡體   English   中英

如何獲得 gcc.exe 可執行文件來運行也是可執行文件的 arguments? pkg-config.exe 作為命令行參數?

[英]How can I get gcc.exe executable to run the arguments which are also an executable? pkg-config.exe as a command line argument?

pkg-config.exe 是一個可執行文件,它生成 --cflags 和/或 --libs 以創建文本結果,該文本結果用於鍵入所有必要的 -I 和 -L 以及 -l 標志和庫,這些是使用 gcc 編譯所需的。 exe編譯器!

我試圖從命令提示符運行的示例代碼是:

gcc `pkg-config --cflags gtk+-3.0` -o hello-world-gtk hello-world-gtk.c `pkg-config --libs gtk+-3.0`

gcc 'pkg-config --cflags gtk+-3.0' -o hello-world-gtk hello-world-gtk.c 'pkg-config --libs gtk+-3.0'

我收到一個錯誤,導致 output 如下:

gcc:錯誤:pkg-config:沒有這樣的文件或目錄
gcc:錯誤:gtk+-3.0:沒有這樣的文件或目錄
gcc:錯誤:pkg-config:沒有這樣的文件或目錄
gcc:錯誤:gtk+-3.0:沒有這樣的文件或目錄
gcc:錯誤:無法識別的命令行選項--cflags
gcc:錯誤:無法識別的命令行選項--libs

假設

我假設在它所在的位置找不到 pkg-config.exe 可執行文件,因為我沒有設置或知道它在 Windows 用戶環境變量設置上調用的某些特定類型的環境變量在我的 Windows 10 台計算機,因為這可能是當前運行和編譯命令 gcc.exe 的原因。由於缺少環境變量,c 文件無法定位 pkg-config.exe 所在的位置。

有誰碰巧知道我需要哪個環境變量,以便 gcc.exe 知道在哪里找到作為參數傳遞給 gcc.exe 可執行文件的任何其他可執行文件?

環境變量

  1. GCC_EXEC_PREFIX
  2. 編譯路徑
  3. 路徑

gcc.exe "pkg-config.exe --cflags gtk+-3.0" -o hello-world-gtk hello-world-gtk.c "pkg-config.exe --libs gtk+-3.0"

我將單引號更改為雙引號,它將錯誤數量從 output 的六個錯誤減少到執行新命令之前和之后的兩個錯誤,它們是:

gcc.exe:錯誤:pkg-config.exe --cflags gtk+-3.0:沒有這樣的文件或目錄
gcc.exe:錯誤:pkg-config.exe --libs gtk+-3.0:沒有這樣的文件或目錄


在我將引號更改為一組更好的引號后,對現在出現的新問題有什么建議嗎?

當我嘗試從單獨運行雙引號內的這些命令中單獨獲取標志然后將它們添加到本段下方的命令中時,我得到了下面的錯誤:

gcc.exe -mms-bitfields -IC:/gtk_32bit/include/gtk-3.0 -IC:/gtk_32bit/include/cairo -IC:/gtk_32bit/include/pango-1.0 -IC:/gtk_32bit/include/atk-1.0 -IC:/gtk_32bit/include/cairo -IC:/gtk_32bit/include/pixman-1 -IC:/gtk_32bit/include -IC:/gtk_32bit/include/freetype2 -IC:/gtk_32bit/include -IC:/gtk_32bit/include/libpng15 -IC:/gtk_32bit/include/gdk-pixbuf-2.0 -IC:/gtk_32bit/include/libpng15 -IC:/gtk_32bit/include/glib-2.0 -IC:/gtk_32bit/lib/glib-2.0/include -o hello-world-gtk.exe hello-world-gtk.c -LC:/gtk_32bit/lib -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lpangocairo-1.0 -lpangoft2-1.0 -lfreetype -lfontconfig -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lm -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl

這是我從運行上面的命令得到的錯誤:

gcc.exe:致命錯誤:無法執行“cc1”:CreateProcess:沒有此類文件或目錄編譯終止。

下面的代碼應該執行相同的 function,因為我從下面的代碼中輸入結果,而不是運行命令本身的雙引號中包含的內容,這給了我兩個嘗試這樣做的錯誤,這就是為什么我嘗試執行本段上方的操作而不是本段下面的內容:

gcc.exe "pkg-config.exe --cflags gtk+-3.0" -o hello-world-gtk hello-world-gtk.c "pkg-config.exe --libs gtk+-3.0"

這是我從運行上面的命令得到的錯誤:

gcc.exe:錯誤:pkg-config.exe --cflags gtk+-3.0:沒有這樣的文件或目錄
gcc.exe:錯誤:pkg-config.exe --libs gtk+-3.0:沒有這樣的文件或目錄


這是一個鏈接,我正在嘗試使用 gcc.exe 從命令提示符完成該鏈接,該鏈接顯示在上面的命令的鏈接中,我試圖確定如何使命令工作?

https://www.gtk.org/docs/getting-started/hello-world/

因此,如鏈接中所示的示例,我正在嘗試使用命令提示符來編譯上面的程序,這是我提供的鏈接中的示例。 我確實正確安裝了所有內容,盡管該示例似乎無法正常工作,如在 CMD.exe 控制台中鍵入命令時提供的命令的鏈接所示!

gcc.exe "pkg-config.exe --cflags gtk+-3.0" -o hello-world-gtk.exe hello-world-gtk.c "pkg-config.exe --libs gtk+-3.0"

通常,您為 pkg-config 創建一個.pc文件,將其與gcc一起使用,例如https://en.wikipedia.org/wiki/Pkg-config 您還可以使用 makefiles 創建.pc文件( Generate pkg-config out of Makefile

Makefile:如何使用文件 pkg-config 安裝項目

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM