我需要對現有的長C源代碼進行一些更改。有一個頂級Makefile,它定義了各種編譯器選項,例如鏈接器使用的庫的目錄位置。從Makefile導入變量到C程序中
喜歡的東西:
LD_OPTIONS = $(PATH_TO_MYLIB1) $(PATH_TO_MYLIB2)
現在,我想用dlsym()
和dlopen()
使用這些庫,而不是明確地聯繫起來的。爲此,我需要庫路徑。
dlopen(path_to_lib , RTLD_NOW) ;
如何從Makefile中使用PATH_TO_LIB
變量並在我的程序中使用它?我想過使用諸如「echo
和system()
」之類的東西。但是,我的期望是有更好的解決方案。 :-)
如果你打算做這樣的事情,它可能會更好做#warning後或在#ifndef塊內部#error,而不是僅僅把它賦值給一些在運行時會中斷的任意值(可能會晚得多,因爲我們永遠不知道這個dlopen()什麼時候會被調用) – 2009-06-22 08:26:33