precompiled-headers

    0熱度

    1回答

    我有一個非常奇怪的預編譯頭問題。當我在.cpp文件中實現方法時,鏈接器生成LNK2019:無法解析的外部符號錯誤。但是,如果我在.h文件中實現方法,則可以編譯該程序。我碰巧找到了一個解決方案,但我不知道這個錯誤的根本原因。 我的項目結構看起來像這樣 解決方案 - >項目1 - >項目2 項目1有3個文件。 A.h,A.cpp和stdafx.h file A.h #pragma once cla

    4熱度

    2回答

    我正在調查使用SCons構建過程,因爲我們正在爲多種平臺開發C++。我在構建配置中的99%的方式,但我遇到了一個非常 Windows上的奇怪的錯誤與預編譯頭文件。更奇怪的是,它只發生在一個項目上。 在該項目的SConscript文件,我有以下的編譯PCH在Windows上: if env['PLATFORM'] == 'win32': env['PCH'] = env.PCH('MyPC

    2熱度

    4回答

    使用預編譯頭文件時,每個文件是否需要#include "stdafx.h"?或者只有源文件需要包含它。 編輯:另外,我的預編譯頭文件#includes很多STL頭。但是,在我的頭文件中,我有時會返回std::vector或類似的東西,所以我需要#include <vector>。這比包含stdafx.h更糟嗎?我需要包含我的單元測試框架的定義。

    21熱度

    4回答

    我瞭解預編譯頭文件的目的和推理。但是,實施它們時的規則是什麼?從我的理解,它是這樣的: 設置您的項目使用預編譯的標題與YU指令。 創建您的stdafx.h文件並將其設置爲您的預編譯頭。 包括此作爲您的每個.h文件中的頂部include語句。 這是正確的嗎?你是否應該將它包含在預編譯頭文件中的文件中? 錯誤C2857:目前,我與這個下面我的直覺時,遇到下列編譯錯誤與/Ycstdafx.h 命令行選項

    5熱度

    1回答

    如果我把一個頭(AH)到stdafx.h中和頭包括未在stdafx.h中提到的另一頭(BH),將BH可以在每次有人訪問包括AH或它是作爲一部分編譯的啊?如果它被編譯到a.h中,當有人直接包含b.h時會發生什麼?這是預編譯還是不? 我的問這個問題的動機是我試圖優化stdafx.h中的文件爲我工作,對軟件的內容。重建和增量構建時間對我們都很重要。我想知道是否可以簡單搜索所有.cpp文件中的#inclu

    2熱度

    3回答

    所以, 我必須在我的VS 2005項目中使用預編譯頭文件。現在我有一個沒有#include「stdafx.h」的共享源文件...如何將共享源文件包含在我的項目中,而無需將stdafx.h添加到源文件的頂部,也不需要關閉預編譯頭?

    1熱度

    1回答

    我正在使用MSVC++ 6構建一個非常大的項目。該項目中的一些源文件與我們用於維護應用程序的小型實用程序共享。以前,這個小工具需要鏈接主應用中的許多庫,並且在運行時還需要主應用的DLL。我的任務是去除這些依賴關係,聽起來很簡單......不幸的是,主應用程序中使用的預編譯頭文件給我帶來了很多麻煩。 我首先重寫了實用程序中的所有文件,以明確包含他們需要的所有文件,然後刪除了PCH的#include指

    1熱度

    2回答

    我正在嘗試編寫混合模式DLL,我們稱之爲'客戶端',用它們的託管等價物替換一些非託管類。在我的個人計算機上一切正常,但是當我檢查源代碼時,我們的構建機器不會構建項目。它無法識別我從另一個叫做'Core'的DLL中使用的託管類。 我認爲這個問題與預編譯頭文件有關。原因如下: 要使用'Core'中的類,我在'Client'項目中添加了對'Core'項目的引用。如果我刪除這個引用,然後在我的個人機器上構

    0熱度

    2回答

    我不相信我使用任何3.0特定的API,但不知何故,每當我編譯我得到一個警告「該項目使用功能只在iPhone SDK 3.0和更高版本」,然後一堆的錯誤。如果我將Base SDK更改爲3.0,則警告&錯誤消失,但當然我無法定位OS 2.2.1 我看到這是來自project_Prefix.pch文件,我認爲它是在創建XCode最初創建了該項目。我不明白這個文件是如何包含的,但我認爲這是問題的根源。我試

    8熱度

    2回答

    可以在使用automake/libtool的項目中使用gcc預編譯頭文件嗎? 添加新的生成規則來構建預編譯頭並不難。問題是你還必須添加由libtool和AFAIK引入的編譯標誌,它不能處理頭文件輸入文件。 你怎麼能這樣做?