Mam pytanie związane z CMake na MAC. I upewnić się, że program wykonywalny będzie link ram i bibliotek poprawnie z poniższych kodów:Dlaczego nie mogę połączyć pliku ramowego Maca z CMake?
link_directories(directory_to_framework_and_libs)
add_executable(program ${FILE_LIST})
target_link_libraries(program framework_name lib1 lib2)
W pierwszej linii kodu, to oznacza miejsce, w którym program wykonywalny może wyszukać ram i bibliotek. W trzecim wierszu kodu struktura i biblioteki będą łączyły się z programem wykonywalnym. Jednak podczas kompilowania xcode.project utworzonego z pliku cmake przy pomocy Xcode 4, projekt wciąż narzeka, że nie może znaleźć -lframework_name
: Wszelkie pomysły zostaną docenione.
Trudno powiedzieć, co jest nie tak, bez bardziej szczegółowych informacji. Zasadniczo wydaje się to poprawne. Zalecam jednak, aby unikać używania ['link_directories'] (http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:link_directories) (zobacz dokumentację, aby uzyskać więcej informacji) i użyj zamiast tego ['find_library'] (http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:find_library). Umożliwi to przekazanie pełnej ścieżki do biblioteki w wywołaniu 'target_link_libraries', a jeśli biblioteka nie zostanie znaleziona, otrzymasz błąd w czasie konfiguracji CMake, a nie w czasie połączenia. – Fraser