Reach MEOS through the pkg-config file MEOS installs - #64
Merged
Conversation
The streaming engine's cgo preamble reads meos.pc, which MEOS's own install writes beside the library, instead of naming -I/usr/local/include and -lmeos directly. A stock /usr/local install carries that file and resolves to the same flags, so the default path is unchanged; a prefix built elsewhere is named once, through PKG_CONFIG_PATH, and both the header path and the link path follow from that single coordinate. Naming the directory directly resolves one libmeos and one set of headers, whichever copy /usr/local holds, and a prefix built for the branch under test is unreachable. An -I added alongside only prepends, so a stale /usr/local header still satisfies the include, and a build compiles against headers that belong to a different library than the one it links. meos.pc also carries the family flags the library is configured with (-DCBUFFER=0, -DNPOINT=1 and the rest), so a build under -tags meos compiles against the same family gating as the libmeos it links, rather than against whatever the headers on the include path happen to declare. The tutorial's prerequisites name the two variables a prefix elsewhere needs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The streaming engine's cgo preamble reads meos.pc, which MEOS's own install
writes beside the library, instead of naming -I/usr/local/include and -lmeos
directly. A stock /usr/local install carries that file and resolves to the same
flags, so the default path is unchanged; a prefix built elsewhere is named
once, through PKG_CONFIG_PATH, and both the header path and the link path
follow from that single coordinate.
Naming the directory directly resolves one libmeos and one set of headers,
whichever copy /usr/local holds, and a prefix built for the branch under test
is unreachable. An -I added alongside only prepends, so a stale /usr/local
header still satisfies the include, and a build compiles against headers that
belong to a different library than the one it links.
meos.pc also carries the family flags the library is configured with
(-DCBUFFER=0, -DNPOINT=1 and the rest), so a build under -tags meos compiles
against the same family gating as the libmeos it links, rather than against
whatever the headers on the include path happen to declare.
The tutorial's prerequisites name the two variables a prefix elsewhere needs.