# Difference between PUBLIC and INTERFACE is not stated

**URL:** https://discourse.cmake.org/t/difference-between-public-and-interface-is-not-stated/7926
**Category:** Site Feedback
**Created:** [April 18, 2023, 2:09pm UTC](https://discourse.cmake.org/t/difference-between-public-and-interface-is-not-stated/7926 "2023-04-18T14:09:05Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![adaldev](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/a/9dc877/32.png) [@adaldev](https://discourse.cmake.org/u/adaldev)
#### Post date: [April 18, 2023, 3:58pm UTC](https://discourse.cmake.org/t/difference-between-public-and-interface-is-not-stated/7926/3 "2023-04-18T15:58:34Z")

</div>

> [@the usage of target\_include\_directories vs target\_link\_libraries](https://discourse.cmake.org/t/the-usage-of-target-include-directories-vs-target-link-libraries/7914/6):
>
> Hi IMHO, I partially agree for the executable part but not for the library one. First of all it does not depend on the shared/static status. Let say a lib A depends on a lib B. If the headers of A that may be included by an application that links A contains symbols from B then target\_link\_libraries(A PUBLIC B) otherwise target\_link\_libraries(A PRIVATE B) another situation may arise: B symbols are only present in A headers but are not used for A sources. then target\_link\_libraries(A INTERFA…

---

_[View the full topic](https://discourse.cmake.org/t/difference-between-public-and-interface-is-not-stated/7926)._
