Thread overview | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
September 04, 2019 Linking to -framework on MacOS | ||||
---|---|---|---|---|
| ||||
Hello, I'm trying to link to "-framework OpenGL" on MacOS and finding any clues on how to accomplish this. If I pass that switch to clang and use clang to create the executable, it works perfectly but I would like to use dmd to create the executable. Here is the list of errors I'm trying to resolve: dmd dmain main.o imgui_impl_glfw.o imgui_impl_opengl3.o imgui.o imgui_demo.o imgui_draw.o imgui_widgets.o gl3w.o -L-lstdc++ -L-lglfw Undefined symbols for architecture x86_64: "_CFBundleCreate", referenced from: _open_libgl in gl3w.o "_CFBundleGetFunctionPointerForName", referenced from: _get_proc in gl3w.o "_CFRelease", referenced from: _close_libgl in gl3w.o _get_proc in gl3w.o "_CFStringCreateWithCString", referenced from: _get_proc in gl3w.o "_CFURLCreateWithFileSystemPath", referenced from: _open_libgl in gl3w.o "___CFConstantStringClassReference", referenced from: CFString in gl3w.o "_kCFAllocatorDefault", referenced from: _open_libgl in gl3w.o _get_proc in gl3w.o ld: symbol(s) not found for architecture x86_64 Could someone point me in the right direction please? |
September 05, 2019 Re: Linking to -framework on MacOS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Edwards | Four years ago, I was linking against Cocoa via: "lflags-osx": ["/System/Library/Frameworks/Cocoa.framework/Cocoa"], I don't know if this will help you or not. |
September 04, 2019 Re: Linking to -framework on MacOS | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | On Wednesday, 4 September 2019 at 15:05:46 UTC, rikki cattermole wrote: > Four years ago, I was linking against Cocoa via: > > "lflags-osx": ["/System/Library/Frameworks/Cocoa.framework/Cocoa"], > > I don't know if this will help you or not. Worked like a charm: -L/System/Library/Frameworks/Cocoa.framework/Cocoa Thank you so much. |
September 04, 2019 Re: Linking to -framework on MacOS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Edwards | On Wednesday, 4 September 2019 at 15:00:52 UTC, Andrew Edwards wrote:
> Could someone point me in the right direction please?
You can also add `-L-framework -LCocoa` to dmd to pass the two arguments to the linker (they need to be separate -L things for the two pieces, which is kinda weird but it works)
|
September 04, 2019 Re: Linking to -framework on MacOS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | On Wednesday, 4 September 2019 at 15:22:51 UTC, Adam D. Ruppe wrote:
> On Wednesday, 4 September 2019 at 15:00:52 UTC, Andrew Edwards wrote:
>> Could someone point me in the right direction please?
>
> You can also add `-L-framework -LCocoa` to dmd to pass the two arguments to the linker (they need to be separate -L things for the two pieces, which is kinda weird but it works)
That's perfect. Thanks.
|
September 05, 2019 Re: Linking to -framework on MacOS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Edwards | On 2019-09-04 17:12, Andrew Edwards wrote: > Worked like a charm: > > -L/System/Library/Frameworks/Cocoa.framework/Cocoa This probably not a good idea. It relies on how a framework is structured internally. Adam's solution is the correct one. -- /Jacob Carlborg |
September 05, 2019 Re: Linking to -framework on MacOS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Edwards | And depending on the version of macOS / which framework you're linking to, you might need to specify a search path as well (-F): lflags "-framework" "SomeFramework" "-framework" "AnotherFramework" "-F/Library/Frameworks" IIRC I didn't need that -F parameter on 10.9, but now I do with 10.14. But it's for my own frameworks, not system ones. |
September 06, 2019 Re: Linking to -framework on MacOS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | On Thursday, 5 September 2019 at 12:30:33 UTC, Jacob Carlborg wrote:
> On 2019-09-04 17:12, Andrew Edwards wrote:
>
>> Worked like a charm:
>>
>> -L/System/Library/Frameworks/Cocoa.framework/Cocoa
>
> This probably not a good idea. It relies on how a framework is structured internally. Adam's solution is the correct one.
Thanks. That is the one I went with because it was not dependent on the file structure and it was quite a bit shorter.
|
September 06, 2019 Re: Linking to -framework on MacOS | ||||
---|---|---|---|---|
| ||||
Posted in reply to DanielG | On Thursday, 5 September 2019 at 18:26:41 UTC, DanielG wrote:
> And depending on the version of macOS / which framework you're linking to, you might need to specify a search path as well (-F):
>
> lflags "-framework" "SomeFramework" "-framework" "AnotherFramework" "-F/Library/Frameworks"
>
> IIRC I didn't need that -F parameter on 10.9, but now I do with 10.14. But it's for my own frameworks, not system ones.
I am on 10.14 as well and Adam's solutions works well with the system provided frameworks. Thanks.
|
Copyright © 1999-2021 by the D Language Foundation