簡體   English   中英

(mac c ++開發),對於一個動態庫,在Makefile.am腳本中在哪里指定install_name?

[英](mac c++ development), for a dynamic library, where does one specify the install_name in a Makefile.am script?

我正在Mac上使用gnu autotools建立一個項目。 一切都可以編譯,但是我在與動態庫鏈接時遇到了問題。 如何在我的Makefile.am腳本中指定install_name。 我認為可能是以下情況:

    lib_LTLIBRARIES = libphysics.la

    libphysics_la_SOURCES = PhysicsEngine.cpp\
       PointMass.cpp\
       Spring.cpp\
       WaterForceGenerator.cpp

    AM_CPPFLAGS=  @CXXFLAGS@\
        -I../include\
        -Iinclude\
        -I../evolutionaryStuff/include\
        -I../geom/include\
        -I../model/include\
        -I../paramsReader/include\
        -I../ctrnn/include\
        -I../simulationSystem/include

    AM_LDFLAGS= @LDFLAGS@ \
        -install_name "./.libs/libphysics.0.dylib"

...但是當我這樣做時:

otool -D libphysics.0.dylib

在.libs目錄中

/usr/local/lib/libphysics.0.dylib

(但我想要它到.libs / libphysics.0.dylib之類的東西)

我知道這一定很簡單,有什么想法嗎?

謝謝,

本。

到處亂逛之后,似乎Makefile.am文件中的正確條目應為:

    AM_LDFLAGS= @LDFLAGS@\
             -Xlinker -rpath -Xlinker "`pwd`/.libs"\
             -Xlinker -install_name -Xlinker "`pwd`/.libs/libphsyics.0.dylib"

我不知道為什么這樣。 訣竅是在“ -rpath”和“ -install_name”之前和之后添加成對的“ -Xlinker”標志。 如果有人能告訴我為什么這樣做是必要的,我將不勝感激。

謝謝,

本。

編輯:我應該指出, 如何在Mac OSX下使用gcc設置可執行文件的運行時路徑(-rpath)? 對解決這個問題很有幫助。

暫無
暫無

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

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