Я собрал свой собственный GCC и библиотеки и поместил библиотеки в /opt/gcc-4.6.2/lib
, чтобы библиотеки с общим именем, такие как libstdc++
, не мешали другим частям системы. Это означает, что я должен указать путь поиска библиотеки вручную:
$> g++-4.6.2 -L/opt/gcc-4.6.2/lib input.cpp
Когда я пытаюсь собрать мой проект с помощью CMake, я не могу понять, как заставить CMake искать эту библиотеку. Документация говорит об использовании CMAKE_LIBRARY_PATH
, который я установил в строке, используемой для генерации моих Makefile:
$> cmake .. -DCMAKE_CXX_COMPILER=g++-4.6.2 \
-DCMAKE_LIBRARY_PATH=/opt/gcc-4.6.2/lib
Это, однако, не выполняется в тесте простой компиляции программы:
# 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...
Я не могу найти магию вуду, необходимую для того, чтобы CMake испустил -L/opt/gcc-4.6.2/lib
для тестовой компиляции (я знаю, CMAKE_LIBRARY_PATH
работает после проекта построен). Как я могу заставить CMake использовать альтернативный путь к библиотеке для связи исполняемых файлов теста?