View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0013765 | CMake | CMake | public | 2012-11-30 15:02 | 2013-07-01 09:38 | ||||
Reporter | Jean-Christophe Fillion-Robin | ||||||||
Assigned To | Brad King | ||||||||
Priority | high | Severity | major | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | CMake 2.8.10.2 | ||||||||
Target Version | CMake 2.8.11 | Fixed in Version | CMake 2.8.11 | ||||||
Summary | 0013765: Failed to link against framework in /Library/Framework when CMAKE_OSX_* variables are set | ||||||||
Description | Failed to link against framework in /Library/Framework when CMAKE_OS_* variables are set The problem occurs when using: - CMake 2.8.10.2 - mac OSX 10.8 - XCode Version 4.5.2 (4G2008a) - g++ --version i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) After installing qt 4.7.4: ftp://ftp.qt.nokia.com/qt/source/qt-mac-opensource-4.7.4.dmg [^] This small project allows to reproduce the problem. $ git clone git://github.com/jcfr/CMakeWithQtFramework.git [^] $ mkdir CMakeWithQtFramework-build $ cd CMakeWithQtFramework-build $ cmake ../ […] $ make VERBOSE=1 […] Linking CXX executable foo "/Volumes/Dashboards/Support/CMake 2.8-10.app/Contents/bin/cmake" -E cmake_link_script CMakeFiles/foo.dir/link.txt --verbose=1 /usr/bin/c++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.8 -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/foo.dir/main.cpp.o -o foo -framework QtWebKit -framework QtXmlPatterns -framework QtGui -framework QtNetwork -framework QtCore ld: framework not found QtWebKit clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [foo] Error 1 make[1]: *** [CMakeFiles/foo.dir/all] Error 2 make: *** [all] Error 2 By manually adding -F /Library/Frameworks to the build line, it succeed. /usr/bin/c++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.8 -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/foo.dir/main.cpp.o -o foo -framework QtWebKit -framework QtXmlPatterns -framework QtGui -framework QtNetwork -framework QtCore -F /Library/Frameworks/ I would assume that CMake should automatically add the "-F /Library/Frameworks/" | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0031786) Brad King (manager) 2012-11-30 15:18 |
You're asking the build to use a given SDK but that SDK does not provide the frameworks you're using. On older Mac versions e.g. 10.6 the SDKs had a symlink to make /Library/Frameworks available. CMake needs to account for the lack of this symlink in newer versions. |
(0031789) Jean-Christophe Fillion-Robin (reporter) 2012-11-30 15:38 |
As a workaround, to create the symlinks, should I use something like: for file in `ls -1 /Library/Frameworks/`; do sudo ln -s /Library/Frameworks/$file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/$file; done .. or is there a simpler way ? |
(0031790) Brad King (manager) 2012-11-30 15:43 |
Re 0013765:0031789: I think adding "-F /Library/Frameworks" to CMAKE_EXE_LINKER_FLAGS, CMAKE_SHARED_LINKER_FLAGS, and CMAKE_MODULE_LINKER_FLAGS in your build tree is the simplest workaround. Don't hack your system files for this. |
(0031791) Jean-Christophe Fillion-Robin (reporter) 2012-11-30 15:53 edited on: 2012-12-03 09:22 |
Since I would like to be able to build Slicer with superbuild VTK, CTK (superbuilding itself PythonQt, QTTesting ...) .. it gonna be a painful process to ensure the flag is properly added in all the project relying on Qt. I would have to patch all these projects ... The time being, I think I will simply create the symlinks ... |
(0031817) Brad King (manager) 2012-12-03 09:30 |
Re 0013765:0031791: If you create the symlinks then you should do something like mkdir /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/Library ln -s /Library/Frameworks /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/Library/ instead. I think just that one link will be enough. |
(0031824) Jean-Christophe Fillion-Robin (reporter) 2012-12-03 17:52 edited on: 2012-12-05 12:12 |
Just tried the single symlink approach and it wasn't successful. Using this approach works: cd /Library/Frameworks for file in Qt*; do sudo ln -s /Library/Frameworks/$file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/$file; done for file in Qt*; do sudo ln -s /Library/Frameworks/$file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/$file; done Also need to create link for phonon framework |
(0031826) Brad King (manager) 2012-12-04 08:12 |
Add "-Wl,-v" to the link line by hand to get verbose output about the framework search path in use. |
(0032177) Dimitri Merejkowsky (reporter) 2013-01-30 06:01 |
Maybe related : when using the following file: cmake_minimum_required(VERSION 2.8.10) project(two_frameworks) list(APPEND CMAKE_FRAMEWORK_PATH /Users/dmerejkowsky/.local/share/qi/toolchains/mac64/ogre/) list(APPEND CMAKE_FRAMEWORK_PATH /Users/dmerejkowsky/.local/share/qi/toolchains/mac64/ogre/) find_library(OGRE_LIBRARIES NAMES Ogre) find_library(QT_LIBRARIES NAMES QtCore) add_executable(foo foo.cpp) target_link_libraries(foo ${OGRE_LIBRARIES} ${QT_LIBRARIES}) and building, you can see the generated command line looks like: /usr/bin/c++ -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/foo.dir/foo.cpp.o -o foo -F/Users/dmerejkowsky/.local/share/qi/toolchains/mac64/ogre -F/Users/dmerejkowsky/.local/share/qi/toolchains/mac64/qt -framework Ogre -framework QtCore Note the lack of -F/Users/dmerejkowsky/.local/share/qi/toolchains/mac64/qt The problem did not occur in CMake 2.8.9, and I can reproduce this with CMake 2.8.10 |
(0032178) Brad King (manager) 2013-01-30 09:09 |
Oops, I forgot to update this issue when I fixed it here: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cc676c3a [^] |
(0032179) Brad King (manager) 2013-01-30 09:11 |
Other recent commits should fix the behavior described in 0013765:0032177: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ba58d0c0 [^] http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f0d93854 [^] http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2bc22bda [^] |
(0032289) Jean-Christophe Fillion-Robin (reporter) 2013-02-15 12:01 |
From Steve Pieper - See http://na-mic.org/Bug/view.php?id=2954 [^] On mac os 10.8 with xcode 4.6 and cmake version 2.8.10.20130215-g57833 (the latest next branch as of today). Trying to build a module results in the following kind of error: [ 5%] Building CXX object Logic/CMakeFiles/vtkSlicerNewModuleModuleLogic.dir/vtkSlicerNewModuleLogic.cxx.o Linking CXX shared library ../lib/Slicer-4.2/qt-loadable-modules/libvtkSlicerNewModuleModuleLogic.dylib ld: framework not found QtScript clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [lib/Slicer-4.2/qt-loadable-modules/libvtkSlicerNewModuleModuleLogic.dylib] Error 1 make[1]: *** [Logic/CMakeFiles/vtkSlicerNewModuleModuleLogic.dir/all] Error 2 make: *** [all] Error 2 |
(0032290) Brad King (manager) 2013-02-15 12:51 |
Re 0013765:0032289: Can this be reproduced on a simple example project outside the Slicer superbuild? |
(0032292) Jean-Christophe Fillion-Robin (reporter) 2013-02-15 13:35 |
Here is a project: https://github.com/jcfr/CMakeWithQtFramework [^] @Steve, Daniel: Can you reproduce the problem using this toy project ? |
(0032293) Steve Pieper (reporter) 2013-02-15 13:37 |
I had no problem building the simple example. 0000010 CMakeWithQtFramework-build (master>)$ cmake --version cmake version 2.8.10.20130215-g57833 #11 CMakeWithQtFramework-build (master>)$ cmake ../CMakeWithQtFramework -- Setting OSX_ARCHITECTURES to 'x86_64' as none was specified. -- Setting OSX_DEPLOYMENT_TARGET to '10.8' as none was specified. -- Setting OSX_SYSROOT to '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk' as none was specified. -- The C compiler identification is Clang 4.0.0 -- The CXX compiler identification is Clang 4.0.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Looking for Q_WS_X11 -- Looking for Q_WS_X11 - not found -- Looking for Q_WS_WIN -- Looking for Q_WS_WIN - not found -- Looking for Q_WS_QWS -- Looking for Q_WS_QWS - not found -- Looking for Q_WS_MAC -- Looking for Q_WS_MAC - found -- Looking for QT_MAC_USE_COCOA -- Looking for QT_MAC_USE_COCOA - found -- Found Qt4: /usr/bin/qmake (found version "4.8.3") -- Configuring done -- Generating done -- Build files have been written to: /tmp/CMakeWithQtFramework-build 0000012 CMakeWithQtFramework-build (master %>)$ make Scanning dependencies of target foo [100%] Building CXX object CMakeFiles/foo.dir/main.cpp.o Linking CXX executable foo [100%] Built target foo |
(0032294) Jean-Christophe Fillion-Robin (reporter) 2013-02-15 13:42 |
@Steve: Do you confirm that the QT_QMAKE_EXECUTABLE variable from the CMakeCache.txt points to Qt having Frameworks ? If it points to a Qt you built yourself, the problem wouldn't occur. |
(0032295) Steve Pieper (reporter) 2013-02-15 13:47 |
Both slicer and the CMakeWithQtFramework are using /usr/bin/qmake, which is: 0000019 NewModule-build (master %>)$ qmake --version QMake version 2.01a Using Qt version 4.8.3 in /Library/Frameworks 0000020 NewModule-build (master %>)$ which qmake /usr/bin/qmake |
(0032296) Jean-Christophe Fillion-Robin (reporter) 2013-02-15 14:01 |
In that case, it seems to be specific to Slicer. Could you provide remote access to Brad ? |
(0032297) Steve Pieper (reporter) 2013-02-15 14:10 |
I only have the issue with my laptop right now. Let me see if I can replicate it on a machine with a public IP where I can give him an account. But I agree this is something specific to building slicer loadable modules. |
(0032298) Greg Sharp (reporter) 2013-02-15 15:25 |
The cmake nightly solved this problem for me. OSX 10.7 xcode 4.6 (4H127) cmake-2.8.10.20130213-g7665b (built from source) However, I had infinite loop instead, linked here in case it is related. http://www.cmake.org/Bug/view.php?id=13926 [^] |
(0032318) Jean-Christophe Fillion-Robin (reporter) 2013-02-17 11:41 |
@Greg: I did some experiment and CMake version "2.8.10.20130121-g92bd8" is known to work. See http://slicer-devel.65872.n3.nabble.com/How-to-build-Slicer-on-10-8-tp4027602p4027604.html [^] On the other hand, I was able to reproduce the hang using version "cmake-2.8.10.20130215-g4c900". I suggest we close this issue. |
(0032322) Brad King (manager) 2013-02-18 08:25 |
Re 0013765:0032318: Okay, this issue is fixed and 0013926 records a separate remaining issue. |
(0032378) Jean-Christophe Fillion-Robin (reporter) 2013-02-25 11:37 |
While it is possible to build Slicer without any trouble. There is issue to build Slicer extensions against Slicer build tree. The experiment has been documented here: http://na-mic.org/Mantis/view.php?id=2954#c8038 [^] If needed, I could: 1) Provide access to the machine with a build tree 2) Provide the complete link command |
(0032379) Brad King (manager) 2013-02-25 11:58 |
This issue is resolved AFAICT. Please do not re-open it unless you have a minimal example project that reproduces it on more than one computer. Keep the discussion over in Slicer's issue until you've identified that it is really a CMake problem and narrowed it down to a minimal example. The details of narrowing the case from Slicer's build process to a small example are not of interest to this issue. |
(0033434) Robert Maynard (manager) 2013-07-01 09:38 |
Closing resolved issues that have not been updated in more than 4 months. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2012-11-30 15:02 | Jean-Christophe Fillion-Robin | New Issue | |
2012-11-30 15:18 | Brad King | Note Added: 0031786 | |
2012-11-30 15:38 | Jean-Christophe Fillion-Robin | Note Added: 0031789 | |
2012-11-30 15:43 | Brad King | Note Added: 0031790 | |
2012-11-30 15:53 | Jean-Christophe Fillion-Robin | Note Added: 0031791 | |
2012-12-03 09:22 | Brad King | Note Edited: 0031791 | |
2012-12-03 09:23 | Brad King | Target Version | => CMake 2.8.11 |
2012-12-03 09:23 | Brad King | Summary | Failed to link against framework in /Library/Framework when CMAKE_OS_* variables are set => Failed to link against framework in /Library/Framework when CMAKE_OSX_* variables are set |
2012-12-03 09:23 | Brad King | Description Updated | |
2012-12-03 09:30 | Brad King | Note Added: 0031817 | |
2012-12-03 17:52 | Jean-Christophe Fillion-Robin | Note Added: 0031824 | |
2012-12-03 17:53 | Jean-Christophe Fillion-Robin | Note Edited: 0031824 | |
2012-12-04 08:12 | Brad King | Note Added: 0031826 | |
2012-12-05 12:12 | Jean-Christophe Fillion-Robin | Note Edited: 0031824 | |
2013-01-30 06:01 | Dimitri Merejkowsky | Note Added: 0032177 | |
2013-01-30 09:09 | Brad King | Note Added: 0032178 | |
2013-01-30 09:09 | Brad King | Assigned To | => Brad King |
2013-01-30 09:09 | Brad King | Status | new => resolved |
2013-01-30 09:09 | Brad King | Resolution | open => fixed |
2013-01-30 09:09 | Brad King | Fixed in Version | => CMake 2.8.11 |
2013-01-30 09:11 | Brad King | Note Added: 0032179 | |
2013-02-15 12:01 | Jean-Christophe Fillion-Robin | Note Added: 0032289 | |
2013-02-15 12:01 | Jean-Christophe Fillion-Robin | Status | resolved => feedback |
2013-02-15 12:01 | Jean-Christophe Fillion-Robin | Resolution | fixed => reopened |
2013-02-15 12:51 | Brad King | Note Added: 0032290 | |
2013-02-15 13:35 | Jean-Christophe Fillion-Robin | Note Added: 0032292 | |
2013-02-15 13:35 | Jean-Christophe Fillion-Robin | Status | feedback => assigned |
2013-02-15 13:37 | Steve Pieper | Note Added: 0032293 | |
2013-02-15 13:42 | Jean-Christophe Fillion-Robin | Note Added: 0032294 | |
2013-02-15 13:47 | Steve Pieper | Note Added: 0032295 | |
2013-02-15 14:01 | Jean-Christophe Fillion-Robin | Note Added: 0032296 | |
2013-02-15 14:10 | Steve Pieper | Note Added: 0032297 | |
2013-02-15 15:25 | Greg Sharp | Note Added: 0032298 | |
2013-02-17 11:41 | Jean-Christophe Fillion-Robin | Note Added: 0032318 | |
2013-02-18 08:25 | Brad King | Note Added: 0032322 | |
2013-02-18 08:25 | Brad King | Status | assigned => resolved |
2013-02-18 08:25 | Brad King | Resolution | reopened => fixed |
2013-02-25 11:37 | Jean-Christophe Fillion-Robin | Note Added: 0032378 | |
2013-02-25 11:37 | Jean-Christophe Fillion-Robin | Status | resolved => feedback |
2013-02-25 11:37 | Jean-Christophe Fillion-Robin | Resolution | fixed => reopened |
2013-02-25 11:58 | Brad King | Note Added: 0032379 | |
2013-02-25 11:58 | Brad King | Status | feedback => resolved |
2013-02-25 11:58 | Brad King | Resolution | reopened => fixed |
2013-07-01 09:38 | Robert Maynard | Note Added: 0033434 | |
2013-07-01 09:38 | Robert Maynard | Status | resolved => closed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |