2012-05-29 31 views
2

我正在使用cmake使用Meego 1.2工具鏈(長篇故事)運行構建。這個特定的工具鏈要求使用--sysroot選項來查找它需要的任何庫。如何指定要在共享庫構建中使用的鏈接器標誌[cmake]

set (CMAKE_CXX_FLAGS "-fpermissive") 
set (CMAKE_CXX_LINK_FLAGS "--sysroot=${INTEL_GRAPHICS_SDK_BASE}/sdk") 
set (CMAKE_CXX_FLAGS_DEBUG "-g") 

這些選項允許cmake的初始編譯器檢查通過,但看起來在構建像LD期間產生一個共享庫時被調用而沒有任何的指定的選項。

是否有一個不同的cmake變量需要設置爲指定共享庫的sysroot?由於您使用的交叉編譯工具鏈,爲什麼不設置CMAKE_CXX_COMPILER並直接傳遞這些--sysroot=選項G ++(或GCC)

我得到的錯誤是

/usr/lib/madde/linux-i686/toolchains/meego-1.2-sdk-ia32-toolchain-1.0-linux_i686/i586-meego-linux-gnu/bin/../lib/gcc/i586-meego-linux-gnu/4.5.1/../../../../i586-meego-linux-gnu/bin/ld: crti.o: No such file: No such file or directory 
collect2: ld returned 1 exit status 
+1

嗯,也許你需要'link_directories($ {} PATH_TO_crti.o)'? – arrowd

+0

它是交叉編譯嗎?事實上--sysroot是g ++標誌。你也可以嘗試使用-WI g ++選項。 –

回答

-1

還有一個名爲CMAKE_EXE_LINKER_FLAGS標誌下面的解釋:

CMAKE_EXE_LINKER_FLAGS 

    Linker flags used to create executables. 

    Flags used by the linker when creating an executable. 
相關問題