在FreeBSD下链接端口库

时间:2018-08-29 15:58:49

标签: compilation linker freebsd

我通过gtk3下的端口集合构建了一些库(qt5FreeBSD 11.2,...)。为了测试它们,我仅构建了最少的示例。每次链接器抱怨找不到这些库时。

如果我错了,请纠正我,但是在FreeBSD下,常规软件包(用pkg设置的软件包)安装在/usr/include/usr/lib下,但是端口位于,默认情况下,位于/usr/local/include/usr/local/lib下。

是否有一种简单的方法告诉编译器在这些目录下进行搜索,而不是使用带有-I-L选项的庞大编译命令?

谢谢您的回答。

编辑

这是我的CMakeLists.txt

cmake_minimum_required(VERSION 3.12)
project(gtk-test)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")

find_package(GTK3 REQUIRED)

include_directories(${GTK3_INCLUDE_DIRS})
link_directories(${GTK3_LIBRARY_DIRS})

add_executable(gtk-test gtk-test.c)
target_link_libraries(gtk-test ${GTK3_LIBRARIES})

我通过抓取以下CMake脚本解决了依赖性问题: https://github.com/eiskaltdcpp/eiskaltdcpp/blob/master/cmake/FindGTK3.cmake

但是,又弹出了另一个问题:

[100%] Linking C executable gtk-test
/usr/lib/crt1.o: In function `_start':
crt1.c:(.text+0x91): undefined reference to `main'
collect2: error: ld returned 1 exit status

编辑

我很愚蠢,我什至没有注意到示例中没有main函数。除默认情况下,CMake无法找到GTK3库及其依赖项之外,它工作正常。

这是我的CMake配置脚本的内容:

Qt5         
Qt53DQuick      
Qt53DRender     
Qt5DataVisualization    
Qt5Location     
Qt5OpenGLExtensions 
Qt5QuickTest        
Qt5SerialBus        
Qt5UiPlugin     
Qt5WebKit       
Qt5XmlPatterns
Qt53DAnimation      
Qt53DQuickAnimation 
Qt5Bluetooth        
Qt5Designer     
Qt5Multimedia       
Qt5Positioning      
Qt5QuickWidgets     
Qt5SerialPort       
Qt5UiTools      
Qt5WebKitWidgets    
assimp-4.1
Qt53DCore       
Qt53DQuickExtras    
Qt5Charts       
Qt5Gamepad      
Qt5MultimediaWidgets    
Qt5PrintSupport     
Qt5Script       
Qt5Sql          
Qt5WebChannel       
Qt5WebSockets       
harfbuzz
Qt53DExtras     
Qt53DQuickInput     
Qt5Concurrent       
Qt5Gui          
Qt5Network      
Qt5Qml          
Qt5ScriptTools      
Qt5Svg          
Qt5WebEngine        
Qt5Widgets      
libxml2
Qt53DInput      
Qt53DQuickRender    
Qt5Core         
Qt5Help         
Qt5Nfc          
Qt5Quick        
Qt5Scxml        
Qt5Test         
Qt5WebEngineCore    
Qt5X11Extras
Qt53DLogic      
Qt53DQuickScene2D   
Qt5DBus         
Qt5LinguistTools    
Qt5OpenGL       
Qt5QuickControls2   
Qt5Sensors      
Qt5TextToSpeech     
Qt5WebEngineWidgets 
Qt5Xml

0 个答案:

没有答案