Compiling

編譯器找不到標頭檔,是否將目錄添加到 PATH?

  • December 16, 2014

我正在嘗試使用位於 的 gtk ,但工具包/usr/include/gtk-3.0/gtk/ ..的所有標頭檔都有.#include <gtk/gtk.h>

除了添加或添加/usr/local/gtk-3.0到所有包含預處理器之外,還有哪些其他選擇?PATH``gtk-3.0

在這種情況下,將適當的目錄添加到您的包含路徑正是您應該做的,只有您應該通過pkg-config. 不支持直接使用完整路徑名訪問文件。

將這樣的內容添加到您的Makefile

CFLAGS += `pkg-config --cflags gtk+-3.0`
LIBS += `pkg-config --libs gtk+-3.0`

這將自動為目前系統添加正確的編譯器和連結器選項。

PATH環境變數是執行檔的搜尋路徑,而不是其他類型文件的搜尋路徑。對於包含文件,您需要安排將選項傳遞-I/usr/include/gtk-3.0/gtk給編譯器。通常,您可以通過設置一個由 makefile 定義的變數(通常是CFLAGS='-I/usr/include/gtk-3.0/gtk')或將參數傳遞給./configure(通常是./configure --includedir=/usr/include/gtk-3.0/gtk)來做到這一點。

使用 Gtk 和其他遵循 Freedesktop 實踐的軟體,指示包含文件的位置以及其他編譯器和連結器選項的正確方法是使用pkg-config如 Celada 的回答中所述

引用自:https://unix.stackexchange.com/questions/174562