簡體   English   中英

如何確保文件在構建中僅處理一次

[英]How to ensure a file is only processed once in a build

如果源文件在構建中被多次處理,是否有引發錯誤的方法? 我知道您可以使用#pragma once#ifndef類型的東西,但這只能防止它一次被包含在單個編譯單元中。 我想確保在Visual Studio解決方案中的多個項目的整個構建中,僅將其包含/編譯一次。

我了解普通的.cpp文件通常只處理一次。 但是,如果其他文件#include包含了.cpp文件,則可以多次處理該文件(我知道這不是典型的情況,但可以最好地說明這種情況)。 因此,我正在嘗試防止文件的意外多個包含。

因此,我正在嘗試防止文件的意外多個包含。

至少您的鏈接器將引發有關ODR規則違規的錯誤消息,請放心。

但是,如果其他文件#包括該.cpp文件,則可以多次處理該文件

是的,它將被處理多次,並提供多個定義,這些定義分布在無法再鏈接在一起的翻譯單元上。

使用COUNTER宏呢? 不確定項目間的行為

#if __COUNTER__ > 0
#error I was there already
#endif

暫無
暫無

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

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