Why does scons ignore my CXXFlags in SConscript
Issue
When the command "scons" is run in the root directory, scons will eventually run the command "g++ -o bin/program bin/cpp/main.o" which will return the error:
"undefined reference to 'dlopen', 'dlerror', 'dlsym', 'dlerror'"
This undefined reference issue can be resolved with the '-ldl' compile argument, but for some reason, scons won't append it.
How do I get scons to add the '-ldl' argument to the g++ command.
.
Project Setup
My project setup is as follows (simplified for stack overflow purposes):
projectFolder/
├──bin/
│ ├─cpp/
│ └─Future Compiled Binary
│
├──cpp/
│ ├─SConscript
│ └─main.cpp
│
└──SConstruct
main.cpp
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
...
int main(void) {
...
}
SConscript
# C++
env = Environment()
env.Append(CXXFLAGS = '-ldl')
print env["CXXFLAGS"]
srcFiles = ['main.cpp']
env.Program('../program', srcFiles)
SConstruct
SConscript('cpp/SConscript', variant_dir='bin/cpp')
c++ g++ scons
add a comment |
Issue
When the command "scons" is run in the root directory, scons will eventually run the command "g++ -o bin/program bin/cpp/main.o" which will return the error:
"undefined reference to 'dlopen', 'dlerror', 'dlsym', 'dlerror'"
This undefined reference issue can be resolved with the '-ldl' compile argument, but for some reason, scons won't append it.
How do I get scons to add the '-ldl' argument to the g++ command.
.
Project Setup
My project setup is as follows (simplified for stack overflow purposes):
projectFolder/
├──bin/
│ ├─cpp/
│ └─Future Compiled Binary
│
├──cpp/
│ ├─SConscript
│ └─main.cpp
│
└──SConstruct
main.cpp
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
...
int main(void) {
...
}
SConscript
# C++
env = Environment()
env.Append(CXXFLAGS = '-ldl')
print env["CXXFLAGS"]
srcFiles = ['main.cpp']
env.Program('../program', srcFiles)
SConstruct
SConscript('cpp/SConscript', variant_dir='bin/cpp')
c++ g++ scons
add a comment |
Issue
When the command "scons" is run in the root directory, scons will eventually run the command "g++ -o bin/program bin/cpp/main.o" which will return the error:
"undefined reference to 'dlopen', 'dlerror', 'dlsym', 'dlerror'"
This undefined reference issue can be resolved with the '-ldl' compile argument, but for some reason, scons won't append it.
How do I get scons to add the '-ldl' argument to the g++ command.
.
Project Setup
My project setup is as follows (simplified for stack overflow purposes):
projectFolder/
├──bin/
│ ├─cpp/
│ └─Future Compiled Binary
│
├──cpp/
│ ├─SConscript
│ └─main.cpp
│
└──SConstruct
main.cpp
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
...
int main(void) {
...
}
SConscript
# C++
env = Environment()
env.Append(CXXFLAGS = '-ldl')
print env["CXXFLAGS"]
srcFiles = ['main.cpp']
env.Program('../program', srcFiles)
SConstruct
SConscript('cpp/SConscript', variant_dir='bin/cpp')
c++ g++ scons
Issue
When the command "scons" is run in the root directory, scons will eventually run the command "g++ -o bin/program bin/cpp/main.o" which will return the error:
"undefined reference to 'dlopen', 'dlerror', 'dlsym', 'dlerror'"
This undefined reference issue can be resolved with the '-ldl' compile argument, but for some reason, scons won't append it.
How do I get scons to add the '-ldl' argument to the g++ command.
.
Project Setup
My project setup is as follows (simplified for stack overflow purposes):
projectFolder/
├──bin/
│ ├─cpp/
│ └─Future Compiled Binary
│
├──cpp/
│ ├─SConscript
│ └─main.cpp
│
└──SConstruct
main.cpp
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
...
int main(void) {
...
}
SConscript
# C++
env = Environment()
env.Append(CXXFLAGS = '-ldl')
print env["CXXFLAGS"]
srcFiles = ['main.cpp']
env.Program('../program', srcFiles)
SConstruct
SConscript('cpp/SConscript', variant_dir='bin/cpp')
c++ g++ scons
c++ g++ scons
asked Nov 14 '18 at 6:08
user5644457
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Don't use CXXFLAGS to link libraries. You should do this:
env.Program('../program', srcFiles, LIBS=['dl'])
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53294092%2fwhy-does-scons-ignore-my-cxxflags-in-sconscript%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Don't use CXXFLAGS to link libraries. You should do this:
env.Program('../program', srcFiles, LIBS=['dl'])
add a comment |
Don't use CXXFLAGS to link libraries. You should do this:
env.Program('../program', srcFiles, LIBS=['dl'])
add a comment |
Don't use CXXFLAGS to link libraries. You should do this:
env.Program('../program', srcFiles, LIBS=['dl'])
Don't use CXXFLAGS to link libraries. You should do this:
env.Program('../program', srcFiles, LIBS=['dl'])
answered Nov 14 '18 at 6:13
John ZwinckJohn Zwinck
152k16176289
152k16176289
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53294092%2fwhy-does-scons-ignore-my-cxxflags-in-sconscript%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown