2016-01-23 157 views
0

我一直在使用gcc版本5.3.0。它說它帶有openmp支持。但每次當我使用gcc [通過終端]或通過xCode 7編譯程序時,我會得到同樣的錯誤,「找不到文件omp.h」。我在這個問題上搜索得太多,並嘗試幾乎所有我發現的東西。首先,我嘗試在我的Mac上找到omp.h。我找到了一些文件;然後在頭文件中,我使用omp.h的具體位置,但沒有幫助[它給了我鏈接器錯誤]。我安裝了gcc版本6.0(預發佈),但沒有幫助。我試着改變C_INCLUDE_PATH [現在是,之前設置爲none],但這對我也沒有幫助。我重新安裝了clang-omp但沒有任何幫助。 我正在使用llvm編譯器版本7.0。雖然我已經安裝了clang-omp,但在我的/ usr/include/*中沒有omp.h,請幫助我!OSX上的OpenMP支持10.11

+0

clang-omp頭文件安裝在Homebrew的/ use/local ...中。使用「brew ls clang-omp」或「find/use/local -name omp.h」來了解它的確切位置。 – Jeff

回答

1

我改變了編譯器,現在我可以運行它了。 [這是鏗鏘聲,我無法解決]。 我是一名學生,英特爾正在爲free to students提供Intel Parallel Studio 1年許可證。 所以我下載並安裝了它。 在xCode中,在編譯設置下,我將編譯器設置爲「Intel C/C++編譯器」,並且在並列化中,我將其轉換爲「yes」。就是這樣。然後它編譯成功。但是,請注意,您將不再使用頭文件'omp.h'。順便說一句,我仍然在尋找答案,只是爲了知道我做錯了什麼。

+0

你是什麼意思頭不會再被使用?您需要頭文件來聲明OpenMP運行時庫符號,如果您使用C99或更高版本,則需要這些符號。 – Jeff

+0

我不知道爲什麼,但它仍然顯示openmp.h未找到。但我的代碼現在可以運行,沒有頭文件,輸出也是如此。 [是的,我知道這很奇怪,但那是發生:/] –

+0

OpenMP頭是'omp.h'。 OpenMP編譯器不會提供'openmp.h'。 – Jeff

0

mac上的編譯器是clang(基於llvm 3.5),它不支持openmp。您可以嘗試install llvm/clang/openmp from source或使用prebuild binaries,但我必須承認它does not work as advertised for me ... 編輯除非您使用-fopenmp=libomp標誌。

+0

clang-omp的Homebrew安裝適用於我。我從來沒有嘗試從源頭上構建多年。 Homebrew食譜可能會顯示從源代碼構建所需的任何補丁。 – Jeff

+0

問題解決了源代碼和二進制安裝,直到3.8,'-fopenmp'標誌不起作用,但是'-fopenmp = libomp'。 – rndblnch

1

您可以通過Homebrew安裝'clang-omp'或'gcc'(對應於GCC 5.3)包,它們都支持OpenMP。

內置GCC基於GCC 4.2.1 abs通過Dragonegg使用LLVM後端,這就是爲什麼它不支持OpenMP。

如前所述,英特爾編譯器在Mac上支持OpenMP。

我不使用Xcode編輯器,所以我不知道如何從那裏使用這些編輯器,但是所有這些都可以在終端上工作,就像它們在Linux上一樣。