2012-01-09 14 views
5

Ho creato il mio GCC e le librerie personali e collocato le librerie in /opt/gcc-4.6.2/lib in modo che le librerie con nomi generici come libstdc++ non interferiscano con altre parti del sistema. Questo significa che devo specificare il percorso di ricerca della libreria manualmente:CMake ha impostato il percorso di ricerca della libreria non riuscito in testCXXCompiler

$> g++-4.6.2 -L/opt/gcc-4.6.2/lib input.cpp 

Quando si cerca di ottenere il mio progetto per costruire con CMake, io non riesco a capire come dire a CMake per cercare quella libreria. Il documentation dice di usare CMAKE_LIBRARY_PATH, che ho impostato sulla linea utilizzata per generare i miei Makefile:

$> cmake .. -DCMAKE_CXX_COMPILER=g++-4.6.2 \ 
      -DCMAKE_LIBRARY_PATH=/opt/gcc-4.6.2/lib 

Questo, tuttavia, non riesce il semplice test di compilazione del programma:

# blah blah blah... 

/usr/local/bin/g++-4.6.2 
CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o -o cmTryCompileExec 
-rdynamic 

/usr/bin/ld: cannot find -lstdc++ 

# blah blah blah... 

Non posso sembrare per trovare la magia voodoo necessaria per far emettere CMake -L/opt/gcc-4.6.2/lib per la compilazione del test (so che lo funziona dopo il il progetto è stato creato). Come posso forzare CMake a utilizzare un percorso di libreria alternativo per collegare gli eseguibili del test?

risposta

2

Hmm, non ho familiarità con come gcc si costruisce da solo, ma suppongo che dovrebbe sapere dove cercare le sue librerie. Forse dovresti provare la cross-compilation.

Inoltre, CMAKE_LIBRARY_PATH non aiuterà il problema, poiché imposta il percorso di ricerca delle librerie solo per CMake, non per il compilatore.

Quindi, non vedo nessun altro modo tranne l'impostazione di CMAKE_CXX_FLAGS o CMAKE_EXE_LINKER_FLAGS a -L/opt/gcc-4.6.2/lib.

Problemi correlati